home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 3 / Cream of the Crop 3.iso / diag / tlb_v240.zip / LASTBYTE.DOC < prev    next >
Text File  |  1994-04-09  |  98KB  |  2,583 lines

  1.  
  2.  
  3.         
  4.  
  5.  
  6.                         THE LAST BYTE MEMORY MANAGER (tm)
  7.  
  8.                        An Upper Memory Manager for MS-DOS
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.                                   Version 2.40
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.                               Copyright (C) 1990-94
  31.                                All Rights Reserved
  32.  
  33.  
  34.                                        by
  35.  
  36.  
  37.                               KEY SOFTWARE PRODUCTS
  38.  
  39.                                 440 Ninth Avenue
  40.                         Menlo Park, California 94025-1802
  41.                                   415-364-9847
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.         The Last Byte Memory Manager is a trademark of Key Software Products.
  53.          MS-DOS and Windows 3.0 are trademarks of Microsoft Corporation.
  54.              DR-DOS is a trademark of Digital Research Incorporated.
  55.                       4DOS is a trademark of J.P. Software.
  56.                      Hyperdisk is a trademark of HyperWare.
  57.  
  58.  
  59.  
  60.         
  61.  
  62.  
  63.                                 TABLE OF CONTENTS
  64.  
  65.  
  66.  
  67.         CHAPTER 1 - INTRODUCTION        ...........................    1
  68.            1.1  Important Advantages       ........................    1
  69.  
  70.         CHAPTER 2 - GETTING A QUICK START     .....................    3
  71.            2.1  Checking Compatibility Using CHIPSET     ..........    3
  72.            2.2  Making a Demo Diskette for Testing   ..............    3
  73.            2.3  Viewing Upper Memory with HIGHMEM    ..............    5
  74.  
  75.         CHAPTER 3 - LASTBYTE.SYS COMMAND LINE OPTIONS     .........    7
  76.            3.1  APPEND=<size>        ..............................    7
  77.            3.2  BANKSWITCH=<base>:<size>        ...................    7
  78.            3.3  CACHE=<kbytes>        .............................    8
  79.            3.4  DOS=<base>:<size>        ..........................    8
  80.            3.5  EXCLUDE=<base>:<size>        ......................    8
  81.            3.6  KEY=<AccessKey>        ............................    8
  82.            3.7  MOVE=TABLES        ................................    9
  83.            3.8  MOVE=MAINBIOS        ..............................    9
  84.               3.8.1  The ADDHOLES suboption      ..................    9
  85.            3.9  MOVE=OVERLAY        ...............................    9
  86.            3.10  MOVE=VIDEOBIOS        ............................    9
  87.            3.11  MOVE=XBDA        .................................   10
  88.            3.12  NAME=<RegisteredUserName>        .................   10
  89.            3.13  PHYSICAL=<MemoryController>        ...............   10
  90.               3.13.1  The OVERRIDE suboption      .................   10
  91.               3.13.2  The NOEMS suboption      ....................   11
  92.               3.13.3  The FRAME suboption      ....................   11
  93.            3.14  RESTRICT=<ab> <cd> <ef>      .....................   11
  94.            3.15  SHADOW=<base>:<size>        ......................   12
  95.            3.16  TRACE=MAINBIOS and TRACE=VIDEOBIOS      ..........   13
  96.            3.17  The ? (question mark) Option    ..................   13
  97.  
  98.         CHAPTER 4 - HIGHDRVR AND HIGHTSR COMMAND LINE OPTIONS   ...   14
  99.            4.1  HIGHDRVR Command Line Syntax     ..................   14
  100.            4.2  HIGHTSR Command Line Syntax     ...................   14
  101.            4.3  The /SIZE Option      .............................   15
  102.            4.4  Measuring Load Requirements Using /SIZE    ........   15
  103.            4.5  Achieving Best Fit Using /SIZE:n1    ..............   16
  104.            4.6  Borrowing Memory Using /SIZE:n1 n2    .............   16
  105.            4.7  The /LOW Option      ..............................   17
  106.            4.8  The /RESTRICT Option      .........................   17
  107.            4.9  The /!NOPAUSE Option      .........................   17
  108.            4.10  The /NOENV Option (HIGHTSR only)    ..............   18
  109.  
  110.         CHAPTER 5 - HIGHUMM.SYS: A UMB PROVIDER     ...............   20
  111.            5.1  The /REPLACE Option      ..........................   20
  112.            5.2  The /NOSPLIT Option      ..........................   20
  113.            5.3  The /RESTRICT Option      .........................   21
  114.            5.4  Limiting UMB Memory      ..........................   21
  115.  
  116.         CHAPTER 6 - HIGHDUBL.SYS: A REPLACEMENT FOR DBLSPACE.SYS      22
  117.  
  118.  
  119.  
  120.         
  121.  
  122.  
  123.                                 TABLE OF CONTENTS
  124.  
  125.  
  126.            6.1  The /MOVE Option      .............................   22
  127.            6.2  The /RESTRICT Option      .........................   22
  128.  
  129.         CHAPTER 7 - SPECIAL CONSIDERATIONS       ..................   23
  130.            7.1  Specifying Command Line Options with Indirect Files   23
  131.            7.2  Using the DOS=F000:32 Option     ..................   23
  132.            7.3  Video Display RAM above 640k    ...................   24
  133.            7.4  Video Adapter Bios ROMs     .......................   25
  134.            7.5  LASTBYTE.SYS and Expanded Memory     ..............   25
  135.            7.6  Fine-Tuning your Adapter Hardware Configuration       26
  136.  
  137.         CHAPTER 8 - USE WITH OTHER SOFTWARE     ...................   28
  138.            8.1  Microsoft's FASTOPEN and MODE programs    .........   28
  139.            8.2  Microsoft's SHARE program      ....................   28
  140.            8.3  Microsoft's MS-DOS       ..........................   29
  141.               8.3.1  Using DEVICEHIGH and LOADHIGH     ............   30
  142.               8.3.2  Using HIGHDRVR and HIGHTSR     ...............   30
  143.            8.4  Microsoft Windows       ...........................   31
  144.               8.4.1  Modifying the Windows SYSTEM.INI File    .....   31
  145.               8.4.2  Positioning an EMS Page Frame    .............   32
  146.               8.4.3  "Unsupported Data Configuration"      ........   32
  147.               8.4.4  HIGHMEM and Windows 386 Enhanced Mode   ......   33
  148.            8.5  HyperWare's HyperDisk       .......................   33
  149.            8.6  J.P. Software's 4DOS      .........................   33
  150.            8.7  David Hamilton's BUFFIT      ......................   34
  151.            8.8  Charles Lazo's WAS      ...........................   34
  152.            8.9  Philip Gardner's DOSMAX      ......................   34
  153.               8.9.1  Trashed Floppy Diskettes      ................   35
  154.  
  155.         APPENDIX 1 - HOW TO REACH US     ..........................   36
  156.  
  157.         APPENDIX 2 - GETTING UPDATES VIA THE INTERNET    ..........   38
  158.  
  159.         APPENDIX 3 - ACKNOWLEDGEMENTS        ......................   39
  160.  
  161.         APPENDIX 4 - LIMITED WARRANTY       .......................   40
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.         
  181.  
  182.  
  183.  
  184.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)               1
  185.  
  186.  
  187.                         CHAPTER 1 - INTRODUCTION        
  188.  
  189.  
  190.         The  Last  Byte  Memory  Manager is a collection of software that
  191.         can  provide  up to 384k of additional memory to your computer in
  192.         the  upper  memory  area between 640k and 1 meg.  It does this by
  193.         using  shadow ram memory, existing fixed read/write (RAM) memory,
  194.         or by mapping expanded memory (EMS) pages into the upper area.  
  195.  
  196.         With  The Last Byte Memory Manager, device drivers, terminate and
  197.         stay  resident  (TSR)  programs,  and  more  can be moved up into
  198.         upper  memory,  leaving  more  conventional  memory available for
  199.         your  application  programs.  Depending on your hardware, you may
  200.         also  be  able  to extend the total conventional memory from 640k
  201.         to as much as 736k.  
  202.  
  203.         The  Last  Byte  Memory  Manager  package  also  includes several
  204.         advanced  utility  programs that can move the master environment,
  205.         DOS  FILES,  DOS  BUFFERS  into  upper  memory.   Other  advanced
  206.         utilities  create  ram disks, print spoolers, command line recall
  207.         (history)  buffers,  emulated  expanded memory, and TSR "markers"
  208.         (to  facilitate  TSR  removal).  Best of all, these utilities can
  209.         even  use  shadow  ram memory which has been disabled (refered to
  210.         as  "Bank-Switch"  memory) by the presence of the display buffer,
  211.         unshadowed read-only memories (ROMs), and other adapter cards.  
  212.  
  213.  
  214.         1.1 Important Advantages        
  215.  
  216.         The   Last   Byte   Memory  Manager  offers  several  significant
  217.         advantages over other MS-DOS Upper Memory Managers: 
  218.  
  219.              1.  The  Last  Byte  Memory  Manager will work with any
  220.                  processor  chip, even the 8088 used in the original
  221.                  IBM  PC.  Many memory managers require a 386 cpu or
  222.                  better.  
  223.  
  224.              2.  The  Last Byte Memory Manager doesn't use protected
  225.                  mode.   Unlike  those  memory managers that do, The
  226.                  Last  Byte  Memory  Manager  is  totally compatible
  227.                  with   any   protected   mode  software,  not  just
  228.                  Microsoft Windows.  
  229.  
  230.              3.  The  Last  Byte  Memory Manager doesn't require any
  231.                  extended  memory.   Some  memory managers depend on
  232.                  the  processor's  ability  to remap physical memory
  233.                  from above 1MB into the upper memory area.  
  234.  
  235.              4.  On  motherboards  that  use  one  of  the supported
  236.                  memory  controller  chips,  The  Last  Byte  Memory
  237.                  Manager,  unlike all other memory managers, can use
  238.  
  239.  
  240.  
  241.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  242.  
  243.  
  244.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)               2
  245.  
  246.  
  247.                  the  unused  shadow  ram  normally  disabled by the
  248.                  display  buffer,  unshadowed ROMs or adapter cards.
  249.                  This  gives  it  the unique ability to use all 384k
  250.                  of upper memory! 
  251.  
  252.              5.  The  Last  Byte  Memory  Manager does not slow down
  253.                  the  performance  of your computer, because it does
  254.                  not  incur the 5-10% execution overhead inherent in
  255.                  protected mode.  
  256.  
  257.              6.  On  motherboards  that  use  one  of  the supported
  258.                  memory  controller  chips,  The  Last  Byte  Memory
  259.                  Manager   can   extend  conventional  memory  using
  260.                  regular  full-speed  motherboard memory rather than
  261.                  using  the  EGA/VGA  display  buffer.  (The display
  262.                  buffer  memory of some EGA/VGA adapter cards can be
  263.                  as much as six times slower than regular memory.)  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  302.  
  303.  
  304.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)               3
  305.  
  306.  
  307.                      CHAPTER 2 - GETTING A QUICK START     
  308.  
  309.  
  310.         The  first  thing  to  do is to be sure that The Last Byte Memory
  311.         Manager   will   work   on  your  computer.   Fundamentally,  the
  312.         requirements  are  DOS  version  3.1  or later and some method of
  313.         implementing  memory  in the upper memory area between 640k and 1
  314.         meg.    Any   Intel  (or  Intel-compatible)  processor  will  do,
  315.         including  the  original  Intel  8088 cpu.  No extended memory is
  316.         required.  
  317.  
  318.  
  319.         2.1 Checking Compatibility Using CHIPSET      
  320.  
  321.         The  CHIPSET  program  is  designed to determine if The Last Byte
  322.         Memory   Manager  is  compatible  with  your  computer.   To  run
  323.         CHIPSET, simply enter its name on the command line: 
  324.  
  325.                 A>CHIPSET 
  326.  
  327.         If  successful, CHIPSET will give you the option of automatically
  328.         linking  to  the INSTALL program to either create a demo diskette
  329.         (as  described  below)  or  to  install the software on your hard
  330.         disk.   For  more detailed information on the CHIPSET program and
  331.         system requirements, consult the file CHIPSET.DOC.  
  332.  
  333.  
  334.         2.2 Making a Demo Diskette for Testing    
  335.  
  336.         To  install The Last Byte Memory Manager on a floppy diskette for
  337.         testing, perform the following three steps: 
  338.  
  339.              Step 1:  Use  the  MS-DOS  FORMAT  command  with the /S
  340.                       option  to  prepare  a  bootable  floppy disk.
  341.                       You will need this in Step 2.  
  342.  
  343.              Step 2:  Run  the  CHIPSET program.  If it succeeds, it
  344.                       will  ask  you "Do you want to run the INSTALL
  345.                       program  now?".  Answer yes.  When it displays
  346.                       the  first  screen  of  the  INSTALL  program,
  347.                       select   the   first   option,   "Creating   a
  348.                       demonstration   diskette"   and   follow   the
  349.                       prompts.  
  350.  
  351.              Step 3:   Once  you  have  created  your  demonstration
  352.                       diskette,  press  Ctrl-Alt-Del  to reboot your
  353.                       computer from the diskette.  
  354.  
  355.         When  your  computer  reboots,  LASTBYTE.SYS  will  pause  thirty
  356.         seconds  and  then  require a keypress to proceed.  The pause and
  357.         the  keypress are removed when you purchase and install an access
  358.  
  359.  
  360.  
  361.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  362.  
  363.  
  364.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)               4
  365.  
  366.  
  367.         key   (see   ORDERFRM.DOC).    There   are,   however,  no  other
  368.         restrictions   on   the  unlicensed  version  -  it  is  a  fully
  369.         functional version of the software.  
  370.  
  371.         If  everything  goes ok during the boot, you'll see a sign-on box
  372.         that looks something like the following: 
  373.  
  374.       ╔═══════════════════════════════════════════════════════════════════╗
  375.       ║         THE LAST BYTE MEMORY MANAGER (tm) Version 2.40a           ║
  376.       ║ Copyright (C) 1990-94, Key Software Products, All Rights Reserved ║
  377.       ║    « You can LICENSE a copy of this software for only $29.95! »   ║
  378.       ╟───────────────────────────────────────────────────────────────────╢
  379.       ║     50.0 Mhz 80486 with 256KB Cache and OPTi Electronics 82C495   ║
  380.       ╟───────────────────────────────────────────────────────────────────╢
  381.       ║  Address Range  Size    Width    Bandwidth    Description         ║
  382.       ║                256 KB 128 bits 200.0 MB/Sec   Secondary CPU Cache ║
  383.       ║   00000-9FFFF  640 KB  32 bits  97.6 MB/Sec   Conventional Memory ║
  384.       ║   C0000-EFFFF  192 KB  32 bits  97.6 MB/Sec   Shadow Ram Memory   ║
  385.       ║   A0000-AFFFF   64 KB  16 bits   1.7 MB/Sec   VGA Graphics Buffer ║
  386.       ║   B8000-BFFFF   32 KB  16 bits   1.7 MB/Sec   VGA Color Text Bfr  ║
  387.       ║   C0000-C7FFF   32 KB   8 bits   1.2 MB/Sec   VGA Adapter Bios    ║
  388.       ║   C8000-C97FF    6 KB   8 bits   1.2 MB/Sec   Fixed Disk Bios     ║
  389.       ║   C9800-C9BFF    1 KB   8 bits   1.2 MB/Sec   Fixed Disk Ram      ║
  390.       ║   F0000-FFFFF   64 KB   8 bits   2.0 MB/Sec   AMI Bios (06/06/91) ║
  391.       ╟───────────────────────────────────────────────────────────────────╢
  392.       ║ Conv:640k High-DOS:144k Bank-Switch:16k Shadowed:96k Excluded:128k║
  393.       ╟───────────────────────────────────────────────────────────────────╢
  394.       ║ The Last Byte Memory Manager is a trademark of Key Software Prod. ║
  395.       ╚═══════════════════════════════════════════════════════════════════╝
  396.  
  397.         If  your computer stops before displaying the box shown above, or
  398.         if  it  fails  to  operate  properly after booting, there are two
  399.         possible reasons: 
  400.  
  401.              1.  CHIPSET  identified  the  wrong  memory controller.
  402.                  Try  running  CHIPSET again, and this time manually
  403.                  test  each of the menu options, noting if more than
  404.                  one  chipset  is  identified.   If so, then run the
  405.                  INSTALL   program   again  for  one  of  the  other
  406.                  chipsets that it finds.  
  407.  
  408.              2.  The  Last  Byte  Memory Manager failed to recognize
  409.                  one  of  your  installed  adapters  that  uses some
  410.                  portion  of  the  upper  memory  address space.  If
  411.                  this  happens,  you'll  probably  need  to  use  an
  412.                  EXCLUDE  option on the LASTBYTE.SYS command line to
  413.                  manually  disable the corresponding region(s) where
  414.                  conflict occurs.   
  415.  
  416.         To  temporarily  get  around  either  of  these problems, you can
  417.         reboot  and manually bypass execution of all The Last Byte Memory
  418.  
  419.  
  420.  
  421.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  422.  
  423.  
  424.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)               5
  425.  
  426.  
  427.         Manager  software  by  simultaneously holding down the <alt> key,
  428.         the  <ctrl>  key,  and either the <leftshift> or <rightshift> key
  429.         during the boot sequence.  
  430.  
  431.         If  The  Last  Byte  Memory  Manager  installs  and  AUTOEXEC.BAT
  432.         finishes  properly,  then  your  display  will be filled with the
  433.         output  of  the  HIGHMEM  program  and  the  current time will be
  434.         displayed  in  inverse video in the upper left-hand corner.  This
  435.         verifies  that  HIGHTSR  has  successfully loaded both the device
  436.         driver  ANSI.SYS  and the TSR program CLOCK.EXE into upper memory
  437.         and that they are operating properly.  
  438.  
  439.         To exit from HIGHMEM, simply press the Esc key.  
  440.  
  441.         Once  you  are  convinced  that  The  Last Byte Memory Manager is
  442.         working  satisfactorily,  you may install it on your hard disk by
  443.         making drive C: the current drive by entering 
  444.  
  445.                 C: 
  446.  
  447.         and rerunning CHIPSET or INSTALL.  
  448.  
  449.  
  450.         2.3 Viewing Upper Memory with HIGHMEM     
  451.  
  452.         Depending  on  what  adapter  cards you have installed, HIGHMEM's
  453.         output should look something like that shown below.  
  454.  
  455.         Bracketed  numbers  in  the  High-DOS  column (e.g., "[141,136]")
  456.         indicate  free  memory  that  is  available for additional device
  457.         drivers  and TSRs.  Bracketed numbers in the "Bank-Switch" column
  458.         (if  any)  indicate  free  memory that can be used by some of the
  459.         advanced  utilities  contained  in  the  file  TLB-A240.ZIP; this
  460.         memory  can  be  used  to  implement a ram disk, a print spooler,
  461.         emulated EMS memory, or TSR markers.  
  462.  
  463.         Note:  HIGHMEM  automatically  senses whether you have a color or
  464.         monochrome  display  to  determine  how  to  present  data on the
  465.         screen.   However,  you may force the mode using one of the /MONO
  466.         or /COLOR command line options.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  482.  
  483.  
  484.       Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)               6
  485.  
  486.  
  487.       HIGHMEM v2.40a (C) Key Software Products 1990-94. All Rights Reserved.
  488.  
  489.       MCB  Hex Address Description [Type] <Mark> High-DOS Bnk-Swtch  Total
  490.       ──── ─────────── ───────────────────────── ──────── ───────── ───────
  491.       CC00 A0000-CBFFF Reserved Memory Group
  492.       CC02 A0000-AFFFF ╠═16-bit VGA Graphics Buffer                  65,536
  493.       CC04 B0000-B7FFF ╠═Unavailable                                 32,768
  494.       CC06 B8000-BFFFF ╠═16-bit VGA Color Text Buffer                32,768
  495.       CC08 C0000-C7FFF ╠═Shadowed 8-bit VGA Bios Rom                 32,768
  496.       CC0A C8000-C97FF ╠═8-bit Fixed Disk Adapter Bios    [  6,144][  6,144]
  497.       CC0C C9800-C9BFF ╠═8-bit Fixed Disk Adapter Ram     [  1,024][  1,024]
  498.       CC0E C9C00-CBFFF ╚═DOS Unusable                     [  9,216][  9,216]
  499.       CC10 CC110-CC54F LASTBYTE    [DEV]           1,088              1,088
  500.       CC55 CC560-CD5BF ANSI        [DEV]           4,192              4,192
  501.       CD5C CD5D0-CD6CF CLOCK       [ENV]             256                256
  502.       CD6D CD6E0-CD88F CLOCK       [TSR]             432                432
  503.       CD89 CD8A0-EFFEF [∙∙∙Free∙∙∙]             [141,136]          [141,136]
  504.       EFFF F0000-FFFFF Shadowed 8-bit AMI Bios Main Bios             65,536
  505.                                                  ───────   ───────  ───────
  506.                             Upper Memory In Use:   5,968         0  235,344
  507.                             [Free Upper Memory]: 141,136    16,384  157,520
  508.                                    MCB Overhead:     352       n/a      352
  509.                             [No HMA Configured]  ───────   ───────  ───────
  510.                              Total Upper Memory: 147,456    16,384  393,216
  511.  
  512.         The  following  article  provides  an excellent definition of the
  513.         various   kinds   of  memory,  such  as  conventional,  extended,
  514.         expanded,  high,  and  upper.   More  important,  however, is its
  515.         discussion  of  how  various  adapter cards make use of the upper
  516.         address  space,  and  may  provide  some insight if you're having
  517.         problems   getting  The  Last  Byte  Memory  Manager  to  install
  518.         properly: 
  519.  
  520.              Barry  Simon,  "How  to Get the Most from Your System's
  521.              High  DOS Memory", PC Magazine, Vol. 9, No. 10 (May 29,
  522.              1990), pp. 347-358.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  542.  
  543.  
  544.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)               7
  545.  
  546.  
  547.                CHAPTER 3 - LASTBYTE.SYS COMMAND LINE OPTIONS     
  548.  
  549.  
  550.         During  initialization,  LASTBYTE.SYS  scans upper memory looking
  551.         for  Bios  ROMs, the video display buffer, and adapter cards that
  552.         use  some  portion  of  the  upper  memory address space.  Of the
  553.         upper  memory  available on your computer, the unoccupied portion
  554.         defaults  to  High-DOS  memory, and the occupied portion defaults
  555.         to Bank-Switch memory.  
  556.  
  557.         These  defaults  can  be  modified  by  the  use  of command line
  558.         options.    There   are   several   command   line   options  for
  559.         LASTBYTE.SYS.  Many of these use a format like: 
  560.  
  561.                 <keyword>=<base>:<size> 
  562.  
  563.         where  <keyword>  is  one  of  the  option  keywords  and  may be
  564.         abbreviated   by   its  first  letter,  <base>  is  a  four-digit
  565.         hexadecimal  segment  address  in  the  range  A000  to FC00, and
  566.         <size> is a decimal number in kilobytes.  
  567.  
  568.         There are two restrictions on these options: 
  569.  
  570.              1.  The  base  must  be  exactly  4 hexadecimal digits,
  571.                  must  lie  at or above A000, and must be a multiple
  572.                  of 0020 (512 bytes), and 
  573.  
  574.              2.  The size must be in the range 1-384 kb.  
  575.  
  576.         The  "multiple  of 0020" requirement for the base is necessary to
  577.         be  consistent  with  the  resolution  that  The Last Byte Memory
  578.         Manager  uses  to  organize  high  memory  during initialization.
  579.         However,  this  requirement is often affected by the much coarser
  580.         resolution used by most memory controllers.  
  581.  
  582.         The  upper area is partitioned into blocks.  Some controllers use
  583.         16k  blocks,  some use 32k blocks, and some use 64k blocks.  Each
  584.         block  must  be either totally enabled or disabled.  I.e., if any
  585.         part  of  a  block's address space is disabled by the presence of
  586.         an  adapter  card,  the  entire  block  of memory is disabled and
  587.         cannot be made available as High-DOS Memory.  
  588.  
  589.  
  590.         3.1 APPEND=<size>         
  591.  
  592.         This  option  is used in conjunction with the HIGHAPND utility to
  593.         "stretch"  the  top of conventional memory beyond 640k.  For more
  594.         information,  refer to the description of the HIGHAPND utility in
  595.         ADVANCED.DOC.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  602.  
  603.  
  604.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)               8
  605.  
  606.  
  607.         3.2 BANKSWITCH=<base>:<size>         
  608.  
  609.         Forces  a  region  of upper memory that would normally be used as
  610.         High-DOS memory to be made available as Bank-Switch memory.  
  611.  
  612.                 ┌─────────────────────────────────────────────────┐
  613.                 │ This option requires a memory controller chip.  │
  614.                 └─────────────────────────────────────────────────┘ 
  615.  
  616.  
  617.         3.3 CACHE=<kbytes>         
  618.  
  619.         Forces  LASTBYTE.SYS  to  think that there is a cache between the
  620.         CPU  and  main  memory and to set its size.  (This has nothing to
  621.         do  with  disk  caching!)  This option is not normally necessary;
  622.         LASTBYTE.SYS  normally  will automatically detect the presence of
  623.         a cache and its size.  
  624.  
  625.         Activating  bank-switch memory causes the contents of a cache (if
  626.         present)  to  be  invalid;  this  is known as a "cache coherency"
  627.         problem.    If   a   cache   is   detected  during  installation,
  628.         LASTBYTE.SYS  checks  to  see if any portion of the upper address
  629.         space  is  cached.   If  not,  then  no  cache  coherency problem
  630.         exists.  
  631.  
  632.         If  the upper address space is cached, however, LASTBYTE.SYS will
  633.         flush  the  cache  on every access to Bank-Switch memory in order
  634.         to  prevent  the  cache  from  providing invalid data to the CPU.
  635.         The  cache  is flushed by filling it from low memory.  The <size>
  636.         value is used to determine how much to fill.  
  637.  
  638.  
  639.         3.4 DOS=<base>:<size>         
  640.  
  641.         Forces  a  region  of upper memory that would normally be used as
  642.         Bank-Switch memory to be made available as High-DOS memory.  
  643.  
  644.  
  645.         3.5 EXCLUDE=<base>:<size>         
  646.  
  647.         Forces  a  region  of upper memory unavailable as either High-DOS
  648.         or Bank-Switch memory.  
  649.  
  650.  
  651.         3.6 KEY=<AccessKey>         
  652.  
  653.         When  you register The Last Byte Memory Manager, you are given an
  654.         access  key that is derived from the spelling of your name.  This
  655.         eight  character  key  should  be specified using this option, as
  656.         in: 
  657.  
  658.  
  659.  
  660.  
  661.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  662.  
  663.  
  664.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)               9
  665.  
  666.  
  667.                 KEY=12345678 
  668.  
  669.         This  option  must  be  used  in conjunction with the NAME option
  670.         discussed below.  
  671.  
  672.  
  673.         3.7 MOVE=TABLES         
  674.  
  675.         This  option  is  for  chipsets in which the main bios shadow ram
  676.         (F000-FFFF)  is  forced  read-only,  such  as  ETEQ, OPTi, Intel,
  677.         VLSI,  and  a  few  others.   It converts a small area within the
  678.         EGA/VGA  bios  shadow  ram  into usable Hi-DOS memory by moving a
  679.         few  parameter  tables  from  there  into  free R/O shadow ram if
  680.         possible.  
  681.  
  682.         One  or  more  available  read-only  shadow  ram  regions must be
  683.         specified  using  the  HOLE option; the TRACE option and HIGHHOLE
  684.         program may be used to suggest suitable holes.  
  685.  
  686.         This  option  cannot be used in conjunction with the MOVE=OVERLAY
  687.         option.  
  688.  
  689.  
  690.         3.8 MOVE=MAINBIOS         
  691.  
  692.         Tries  to  move  the  main  bios  to a better location within the
  693.         available  upper  memory in order to reduce fragmentation of free
  694.         memory.  
  695.  
  696.  
  697.         3.8.1 The ADDHOLES suboption       
  698.  
  699.         MOVE=MAINBIOS,ADDHOLES  will  create  seven holes in the residual
  700.         8k left at FE00 for a total of more than 3k.  
  701.  
  702.  
  703.         3.9 MOVE=OVERLAY         
  704.  
  705.         This  option  is  for  chipsets in which the main bios shadow ram
  706.         (F000-FFFF)  is  forced  read-only,  such  as  ETEQ, OPTi, Intel,
  707.         VLSI,  and  a  few  others.  It puts that ram in write-only mode,
  708.         copies  the  video  bios  on  top of the main bios initialization
  709.         code  at  the  beginning  of  the  bios,  then returns the ram to
  710.         read-only  mode.   Then the old video bios region is converted to
  711.         usable Hi-DOS memory.  
  712.  
  713.         This  option  cannot  be used in conjunction with the MOVE=TABLES
  714.         option.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  722.  
  723.  
  724.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              10
  725.  
  726.  
  727.         3.10 MOVE=VIDEOBIOS         
  728.  
  729.         Tries  to move an EGA or VGA bios to a better location within the
  730.         available  upper  memory in order to reduce fragmentation of free
  731.         memory.  
  732.  
  733.  
  734.         3.11 MOVE=XBDA         
  735.  
  736.         This  option  relocates the Extended Bios Data Area (XBDA), if it
  737.         exists,  into  Upper  Memory.  The XBDA is usually 1k reserved at
  738.         the  top  of  conventional  memory  by  the  main  Bios.  Not all
  739.         machines  use an XBDA, but if it exists, LASTBYTE.SYS will report
  740.         639k  of  Conventional  Memory  instead of 640k, and the advanced
  741.         utility   HIGHAPND  will  refuse  to  append  any  memory.   Some
  742.         machines  may  not operate properly with a relocated XBDA, so use
  743.         this  option with caution.  (Note that some computer viruses also
  744.         "steal" the top 1k of memory.) 
  745.  
  746.  
  747.         3.12 NAME=<RegisteredUserName>         
  748.  
  749.         When  you register The Last Byte Memory Manager, you are given an
  750.         access  key that is derived from the spelling of your name.  This
  751.         option  is  used  to  specify  your name as used to generate that
  752.         key, as in: 
  753.  
  754.                 NAME=Daniel_W._Lewis 
  755.  
  756.                 ┌─────────────────────────────────────────────────┐
  757.                 │ Note: Spaces MUST be indicated by underscores!  │
  758.                 └─────────────────────────────────────────────────┘ 
  759.  
  760.         This  option  should  be  used in conjunction with the KEY option
  761.         discussed earlier.  
  762.  
  763.  
  764.         3.13 PHYSICAL=<MemoryController>         
  765.  
  766.         Used  to  specify the memory controller determined by the CHIPSET
  767.         program.  
  768.  
  769.  
  770.         3.13.1 The OVERRIDE suboption       
  771.  
  772.         Many  memory  controller chips can relocate all or part of shadow
  773.         ram  to  the  top of (extended) memory.  If LASTBYTE.SYS fails to
  774.         install with the error message: 
  775.  
  776.                "Shadow Ram memory relocated - Use OVERRIDE option"
  777.  
  778.  
  779.  
  780.  
  781.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  782.  
  783.  
  784.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              11
  785.  
  786.  
  787.         try adding the OVERRIDE suboption to the PHYSICAL option, as in: 
  788.  
  789.                 PHYSICAL=82C212,OVERRIDE 
  790.  
  791.         This  disables  any  shadow ram relocation that may be in effect,
  792.         regardless  of  your  CMOS  configuration  menu  setup.  The CMOS
  793.         setup  menu  of  your  BIOS may also provide an option to disable
  794.         relocation  directly,  but  there are some that determine whether
  795.         to relocate or not based on other configuration options.   
  796.  
  797.  
  798.         3.13.2 The NOEMS suboption       
  799.  
  800.         May  be  used in conjunction with PHYSICAL=LIM4EMS or EEMS to use
  801.         the 64k page frame as High-DOS Memory, as in: 
  802.  
  803.                 PHYSICAL=LIM4EMS,NOEMS 
  804.  
  805.         The   NOEMS   suboption   must   be   used  in  conjunction  with
  806.         PHYSICAL=LIM3EMS   (i.e.,   PHYSICAL=LIM3EMS,NOEMS).    Doing  so
  807.         disables other (normal) use of all expanded memory.  
  808.  
  809.  
  810.         3.13.3 The FRAME suboption       
  811.  
  812.         May  be used with those low-level physical drivers that implement
  813.         64k  of  Hi-Dos  memory  by using the four 16k pages of their EMS
  814.         page frame, as in: 
  815.  
  816.                 PHYSICAL=HT12,FRAME=CC00 
  817.  
  818.         The  possible  values (e.g., "CC00") for the position of the page
  819.         frame  is  restricted  by the hardware capability of the chipset,
  820.         but  is  always  limited  to no more than C000, C400, C800, CC00,
  821.         D000, D400, D800, DC00, or E000.  
  822.  
  823.  
  824.         3.14 RESTRICT=<ab> <cd> <ef>       
  825.  
  826.         Address  lines  A15 and A16 are not latched in hardware design of
  827.         the  AT  bus.  As a consequence, some 16-bit adapter cards do not
  828.         properly  decode  these  address  lines  within  the  narrow time
  829.         constraints  imposed  by  the  Address Latch Enable (ALE) signal,
  830.         and  will  occassionally  respond  to  a  memory  access  that is
  831.         directed  at  some  other portion of the address space.  Thinking
  832.         that  it  is  for  them, they force the transfer into 16-bit mode
  833.         even  though the intended recipient requires 8-bit mode, and thus
  834.         cause  erroneous  data  to  be  transferred  to  the bytes in the
  835.         odd-numbered addresses.  
  836.  
  837.         The  most common (and damaging) occurence occurs during the 8-bit
  838.  
  839.  
  840.  
  841.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  842.  
  843.  
  844.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              12
  845.  
  846.  
  847.         DMA  transfers  between a floppy disk drive and upper memory near
  848.         the address space occupied by an offending 16-bit adapter card.  
  849.  
  850.         Due  to  organization  of the address signals on the AT bus, this
  851.         phenomena  only  occurs when the two address areas are within the
  852.         same  128k  region.   There  are  three such regions in the upper
  853.         area:  A0000-BFFFF,  C0000-DFFFF,  and E0000-FFFFF.  LASTBYTE.SYS
  854.         automatically  senses  the  presence  of  16-bit adapter cards in
  855.         each  of  these three regions and records this information within
  856.         its  resident image for use by its utilities.  LASTBYTE.SYS skips
  857.         this  test  if it detects a PC with a Micro Channel bus (like the
  858.         PS/2) since problem was corrected in its design.  
  859.  
  860.         The  RESTRICT  option  is  provided  to  override  this automatic
  861.         detection  of  16-bit adapters.  Each of the three arguments (one
  862.         per  128k region) should be replaced by either "0" (indicating no
  863.         16-bit  adapters),  or  "1"  (indicating the presense of a 16-bit
  864.         adapter) and separated by commas.  
  865.  
  866.         For  example,  the  option RESTRICT=1,1,0 would imply that one or
  867.         more  16-bit  adapters  are located in the first two 128k regions
  868.         of   upper   memory  (A000-DFFF),  so  that  when  the  companion
  869.         /RESTRICT  option  of  HIGHDRVR,  HIGHTSR, HIGHDUBL or HIGHUMM is
  870.         used,  only  High-DOS  memory  in  the  region  E000-FFFF will be
  871.         allocated.  
  872.  
  873.         (Note:  The  /RESTRICT  option  is also supported by the advanced
  874.         utilities  HIGHEMS3,  and HIGHEMS4.  The default operation of the
  875.         advanced  utility HIGHBFRS is /RESTRICT, but this may be disabled
  876.         by use of its /NORESTRICT option.) 
  877.  
  878.  
  879.         3.15 SHADOW=<base>:<size>         
  880.  
  881.         The  Last  Byte  Memory Manager will automatically copy the video
  882.         bios  and  main  bios  to  shadow  ram  if  they  aren't  already
  883.         shadowed.   However,  it  will  not do so for other adapter ROMs.
  884.         This   is   because  some  controllers  "hide"  a  small  RAM  by
  885.         overlaying  it  in  a  portion  of  the  same  address space they
  886.         declare  as  being  filled  with  ROM.   Such  a RAM is no longer
  887.         accessible  when the ROM is shadowed, usually causing the adapter
  888.         to stop functioning.  
  889.  
  890.         This  option  is  for those who want to forces a region of memory
  891.         (presumably  ROM)  to  be  copied  into  shadow  ram.   If  other
  892.         hardware  is  detected  outside  the specified region, but within
  893.         the  same  memory  controller  block  which  conflicts  with this
  894.         request,  a  corresponding  error  message  will be displayed and
  895.         LASTBYTE.SYS will not be installed.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  902.  
  903.  
  904.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              13
  905.  
  906.  
  907.                 ┌─────────────────────────────────────────────────┐
  908.                 │ This option requires a memory controller chip.  │
  909.                 └─────────────────────────────────────────────────┘ 
  910.  
  911.  
  912.         3.16 TRACE=MAINBIOS and TRACE=VIDEOBIOS       
  913.  
  914.         Either  or  both  of  these options, used in conjunction with the
  915.         HIGHHOLE  program,  are intended to help identify unused space in
  916.         a   bios  ROM  or  space  that  is  used  only  during  cold-boot
  917.         initialization.   Most such regions may be converted into usuable
  918.         upper   memory   with  use  of  the  HOLE  option.   For  a  full
  919.         description   of  these  options,  see  the  description  of  the
  920.         HIGHHOLE program in ADVANCED.DOC.  
  921.  
  922.  
  923.         3.17 The ? (question mark) Option     
  924.  
  925.         Causes  LASTBYTE.SYS  to  erase  the screen, display a summary of
  926.         what  it  finds  in  the  upper  memory  area,  and pause for two
  927.         seconds   to   give   the   user   an  opportunity  to  read  the
  928.         information.   To  freeze this display for a longer period, press
  929.         <Ctrl>-S;  then to continue with CONFIG.SYS processing, press any
  930.         key.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  962.  
  963.  
  964.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              14
  965.  
  966.  
  967.             CHAPTER 4 - HIGHDRVR AND HIGHTSR COMMAND LINE OPTIONS   
  968.  
  969.  
  970.         HIGHDRVR  is  a  device  driver that is used to load other device
  971.         drivers  into upper memory.  HIGHTSR is a program that is used to
  972.         load  TSR programs into upper memory.  Both utilities use most of
  973.         the  same  command line options as discussed in the sections that
  974.         follow.  
  975.  
  976.  
  977.         4.1 HIGHDRVR Command Line Syntax      
  978.  
  979.         The command line syntax of the CONFIG.SYS line for HIGHDRVR is: 
  980.  
  981.             DEVICE=[path]HIGHDRVR.SYS [options] <filespec> [options]
  982.  
  983.         where  '<filespec>'  is  the  filename of the device driver to be
  984.         loaded  high,  optionally  prefixed  by  a  drive  and  directory
  985.         specifcation.   The  filespec  may  be  preceded  by  one or more
  986.         options,  and  followed by options at the end of the command line
  987.         as required by the particular driver to be loaded.  
  988.  
  989.         When  HIGHDRVR  searches  the disk for the device driver to load,
  990.         it follows the following search strategy: 
  991.  
  992.              1.  If  '<filespec>'  includes  a  drive  or  directory
  993.                  specification,  this  will  be  the only place that
  994.                  HIGHDRVR will look.  
  995.  
  996.         Otherwise, HIGHDRVR will search for the driver in: 
  997.  
  998.              2.  The current (root) directory, and then 
  999.  
  1000.              3.  The same directory where HIGHDRVR was found.  
  1001.  
  1002.  
  1003.         4.2 HIGHTSR Command Line Syntax      
  1004.  
  1005.         The command line syntax for HIGHTSR is: 
  1006.  
  1007.                   [path]HIGHTSR [options] <filespec> [options]
  1008.  
  1009.         where  '<filespec>'  is  the  filename  of  the TSR program to be
  1010.         loaded  high,  optionally  prefixed  by  a  drive  and  directory
  1011.         specifcation.   The  filespec  may  be  preceded  by  one or more
  1012.         options,  and  followed by options at the end of the command line
  1013.         as required by the particular TSR to be loaded.  
  1014.  
  1015.         When  HIGHTSR searches the disk for the device driver to load, it
  1016.         follows   the   same  strategy  that  MS-DOS  uses  when  loading
  1017.         programs: 
  1018.  
  1019.  
  1020.  
  1021.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1022.  
  1023.  
  1024.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              15
  1025.  
  1026.  
  1027.  
  1028.              1.  If  '<filespec>'  includes  a  drive  or  directory
  1029.                  specification,  this  will  be  the only place that
  1030.                  HIGHTSR will look.  
  1031.  
  1032.         Otherwise, HIGHTSR will search for the TSR program in: 
  1033.  
  1034.              2.  The current directory, and then 
  1035.  
  1036.              3.  Those  directories  given  by  the PATH environment
  1037.                  variable.  
  1038.  
  1039.         HIGHTSR  may also be used with the MS-DOS "INSTALL=" directive of
  1040.         a CONFIG.SYS file.  
  1041.  
  1042.  
  1043.         4.3 The /SIZE Option       
  1044.  
  1045.         The  amount  of  High-DOS memory required to load a device driver
  1046.         or  TSR  is  the  larger  of two amounts: (1) the amount required
  1047.         during  initialization  and  (2)  the  final resident requirement
  1048.         once  installed.   Either or both of these may be greater than or
  1049.         equal to the size of the file.  
  1050.  
  1051.         Most   device   drivers   and   TSR's  require  more  memory  for
  1052.         initialization  than  when  resident,  although  there  are a few
  1053.         (such   as   SMARTDRV.SYS  and  NANSI.SYS)  which  require  extra
  1054.         resident  memory  for  buffers,  etc.   The  normal  operation of
  1055.         HIGHDRVR  and  HIGHTSR is to use the largest free High-DOS memory
  1056.         block  to load the software since the resident memory requirement
  1057.         cannot  be  determined  until  after the software has been loaded
  1058.         and initialized.  
  1059.  
  1060.         Unfortunately,  this  can  lead  to  a  less  than optimum use of
  1061.         memory.   If  the  memory  requirements were known, then a memory
  1062.         block  could  be  selected using a "best fit" strategy; i.e., the
  1063.         smallest  free  High-DOS  memory  block  which  is larger than or
  1064.         equal  to  the  load  requirement.   This usually results in much
  1065.         better utilization of memory.  
  1066.  
  1067.  
  1068.         4.4 Measuring Load Requirements Using /SIZE     
  1069.  
  1070.         If  inserted  on the command line of HIGHTSR or HIGHDRVR as shown
  1071.         below: 
  1072.  
  1073.                 C:\TLBMM\HIGHTSR /SIZE C:\DOS\PRINT /D:PRN 
  1074.  
  1075.                 -or- 
  1076.  
  1077.                 DEVICE=C:\TLBMM\HIGHDRVR.SYS /SIZE C:\DOS\ANSI.SYS 
  1078.  
  1079.  
  1080.  
  1081.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1082.  
  1083.  
  1084.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              16
  1085.  
  1086.  
  1087.  
  1088.         then  both  the  initialization and resident requirements will be
  1089.         displayed  on  the console after the software has been loaded and
  1090.         initialized.  
  1091.  
  1092.  
  1093.         4.5 Achieving Best Fit Using /SIZE:n1     
  1094.  
  1095.         The  larger  of  the initialization and resident requirements may
  1096.         be  specified  with  the  /SIZE  option  to  force  a  "best fit"
  1097.         allocation.  For example: 
  1098.  
  1099.                 C:\TLBMM\HIGHTSR /SIZE:17120 C:\DOS\PRINT.EXE /D:PRN 
  1100.  
  1101.                 -or- 
  1102.  
  1103.                 DEVICE=C:\TLBMM\HIGHDRVR.SYS /SIZE:12032 C:\DOS\ANSI.SYS 
  1104.  
  1105.  
  1106.         4.6 Borrowing Memory Using /SIZE:n1 n2     
  1107.  
  1108.         Usually  the resident requirement is less than the initialization
  1109.         requirement.   If  there  isn't  enough  free  High-DOS memory to
  1110.         satisfy  the  initialization requirement, but there is enough for
  1111.         the  resident  requirement,  then  you  may still be able to load
  1112.         your  software  by adding a second parameter to the /SIZE option,
  1113.         as in: 
  1114.  
  1115.                 C:\TLBMM\HIGHTSR /SIZE:16208,5776 C:\DOS\PRINT /D:PRN 
  1116.  
  1117.                 -or- 
  1118.  
  1119.                 DEVICE=C:\TLBMM\HIGHDRVR.SYS             /SIZE:12032,4820
  1120.                 C:\DOS\ANSI.SYS 
  1121.  
  1122.         In  this  example, the initialization requirement is specified by
  1123.         the  first parameter and is 16208 bytes; the resident requirement
  1124.         is  specified  by  the  second parameter and is 5776 bytes.  Note
  1125.         that  specifying  the  second parameter is not helpful unless the
  1126.         resident    requirement   is   less   than   the   initialization
  1127.         requirement.  
  1128.  
  1129.         When  the  second  parameter  is  used, HIGHTSR first looks for a
  1130.         free  area larger than or equal to the initialization requirement
  1131.         (the  first parameter); if found, it simply loads the software in
  1132.         this  area  and  the  second  paramter  is  ignored.   Otherwise,
  1133.         HIGHTSR  searches  for  a  free  area larger than or equal to the
  1134.         resident  requirement  (the  second  parameter),  and  which  has
  1135.         "data"  allocated  immediately  above  it that can be temporarily
  1136.         moved  to create enough free memory to satisfy the initialization
  1137.         requirement.   Such  "data"  includes High-DOS memory used by the
  1138.  
  1139.  
  1140.  
  1141.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1142.  
  1143.  
  1144.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              17
  1145.  
  1146.  
  1147.         advanced   utilities   HIGHDISK,  HIGHEMS3,  HIGHEMS4,  HIGHSPLR,
  1148.         HIGHKEY, and HIGMARK.  
  1149.  
  1150.  
  1151.         4.7 The /LOW Option       
  1152.  
  1153.         As  noted  earlier,  TSR's  and device drivers often require much
  1154.         more  memory  during  installation  as  compared to that required
  1155.         once  they  are  resident.   This  can  prevent loading them into
  1156.         High-DOS  memory  even  if  there's enough for the resident image
  1157.         (but not enough for initialization).  
  1158.  
  1159.         The  /LOW  option  can be used with some TSR's and device drivers
  1160.         to get around this problem: 
  1161.  
  1162.                 C:\TLBMM\HIGHTSR /LOW C:\DOS\APPEND 
  1163.  
  1164.                 -or- 
  1165.  
  1166.                 DEVICE=C:\TLBMM\HIGHDRVR.SYS                         /LOW
  1167.                 C:\DRIVERS\MYDRIVER.SYS 
  1168.  
  1169.         For  example,  the  first  example above loads a TSR (APPEND.EXE)
  1170.         and  initializes  it  in  low (conventional) memory where there's
  1171.         lots  of  room,  then copies the (smaller) resident image up into
  1172.         upper memory.  
  1173.  
  1174.                 ╔═════════════════════════════════════════════════╗
  1175.                 ║ WARNING: The design of some software may pre-   ║ 
  1176.                 ║ vent the /LOW option from working properly.     ║ 
  1177.                 ║ Don't use it unless necessary, and then only    ║ 
  1178.                 ║ after you have tested it to be sure everything  ║ 
  1179.                 ║ works as expected.  (For example, it will NOT   ║ 
  1180.                 ║ work with PRINT, SHARE, FASTOPEN, MODE, or      ║ 
  1181.                 ║ HyperDisk.)                                     ║ 
  1182.                 ╚═════════════════════════════════════════════════╝
  1183.  
  1184.  
  1185.         4.8 The /RESTRICT Option       
  1186.  
  1187.         When  used,  this  option  restricts  which 128k regions of upper
  1188.         memory  may  be  allocated  for  use  with HIGHDRVR, HIGHDUBL and
  1189.         HIGHTSR.   For  a  detailed  discussion  of why these regions may
  1190.         need  to  be  restricted and how to control the restrictions, see
  1191.         the   discussion   of   the   RESTRICT  option  in  the  detailed
  1192.         description of LASTBYTE.SYS.  
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.  
  1200.  
  1201.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1202.  
  1203.  
  1204.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              18
  1205.  
  1206.  
  1207.         4.9 The /!NOPAUSE Option       
  1208.  
  1209.         All  of  the  utility  programs  (*.EXE files) that come with The
  1210.         Last   Byte  Memory  Manager  support  the  command  line  option
  1211.         /!NOPAUSE.   This  option  eliminates the wait-for-keyboard pause
  1212.         after  an error message is displayed.  When one of these programs
  1213.         terminates  with  an  error  message,  it also returns a non-zero
  1214.         errorlevel  which  can be tested in batch files to make automatic
  1215.         decisions  about  how  to  proceed.  The  /!NOPAUSE option simply
  1216.         makes use of the errorlevel more practical.  
  1217.  
  1218.  
  1219.         4.10 The /NOENV Option (HIGHTSR only)     
  1220.  
  1221.         All  programs,  including  TSR's,  are  allocated  two regions of
  1222.         memory  when  they  are  loaded:  One is the area for the program
  1223.         itself,  and  the  other  is for a copy of the environment.  Most
  1224.         TSR's  don't  make  use  of  their environment, and some actually
  1225.         release it to the operating system rather than hanging onto it.  
  1226.  
  1227.         If  HIGHMEM  finds  an environment block, the corresponding entry
  1228.         in  the  "Description"  column will have the name of the TSR that
  1229.         it  belongs  to  (such as "CLOCK.EXE") followed by the indication
  1230.         "[Env]".    Occassionally,  you  may  see  a  similar  indication
  1231.         "[Dat]";  this  is  a  data block explicitly allocated by the TSR
  1232.         for some unknown purpose.  
  1233.  
  1234.                 ┌─────────────────────────────────────────────────┐
  1235.                 │ The authors of some TSR's attempt to save a bit │
  1236.                 │ of memory by having the TSR eliminate its own   │
  1237.                 │ Program Segment Prefix (PSP) during initializa- │
  1238.                 │ tion.  Doing so makes it impossible to identify │
  1239.                 │ the TSR'senvironment block.  However, this byte │
  1240.                 │ saving mentality will usually mean that the TSR │
  1241.                 │ initialization code also eliminates its environ-│
  1242.                 │ ment block, so this is rarely a problem.        │
  1243.                 └─────────────────────────────────────────────────┘ 
  1244.  
  1245.         If  you  see  a  block labelled "[Env]" in the output of HIGHMEM,
  1246.         then  you  can  use  the /NOENV command line option of HIGHTSR to
  1247.         release this block, even if the TSR didn't: 
  1248.  
  1249.                 C:\TLBMM\HIGHTSR /NOENV C:\TLBMM\CLOCK 
  1250.  
  1251.         As  noted  earlier,  some  TSRs  will  release  their environment
  1252.         anyway  and  so you may be tempted to load them without using the
  1253.         /NOENV  option.   This  usually  will  create  a  "hole" in upper
  1254.         memory  since  the  TSR's  environment is almost always allocated
  1255.         just  below  the TSR itself.  Use of the /NOENV option forces the
  1256.         environment  to  be  allocated down in conventional memory (where
  1257.         it will be reclaimed later) so that the "hole" is eliminated.  
  1258.  
  1259.  
  1260.  
  1261.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1262.  
  1263.  
  1264.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              19
  1265.  
  1266.  
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1322.  
  1323.  
  1324.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              20
  1325.  
  1326.  
  1327.                   CHAPTER 5 - HIGHUMM.SYS: A UMB PROVIDER     
  1328.  
  1329.  
  1330.         HIGHUMM  is  a  device  driver that creates, and lets application
  1331.         software  use,  Upper  Memory  Blocks (UMB's) in the upper memory
  1332.         area  via  a  standard  protocol that is part of what is known as
  1333.         the  Extended  Memory Specification (XMS).  The number, size, and
  1334.         location  of  UMB  blocks vary widely depending upon the types of
  1335.         hardware adapter cards resident within the upper address space.  
  1336.  
  1337.         If  HIGHUMM  is  installed,  you may use the DOS 5 DEVICEHIGH and
  1338.         LOADHIGH  commands  as  alternatives  to  HIGHDRVR  and  HIGHTSR.
  1339.         HIGHUMM  can  also  be used to advantage with other software such
  1340.         as  4DOS,  BUFFIT,  WAS, and DOSMAX.  These options are discussed
  1341.         in the next chapter.  
  1342.  
  1343.         HIGHUMM may be installed in one of two ways: 
  1344.  
  1345.              1.  If  an XMS driver has not been loaded, HIGHUMM will
  1346.                  become  a  UMB-Only  XMS  device driver.  All other
  1347.                  XMS  functions will return failure, indicating that
  1348.                  the function is not implemented.  For example, 
  1349.  
  1350.                  DEVICE=C:\TLBMM\LASTBYTE.SYS {and any LASTBYTE options}
  1351.                  DEVICE=C:\TLBMM\HIGHUMM.SYS
  1352.  
  1353.              2.  If  an  XMS  driver (such as HIMEM.SYS) has already
  1354.                  been  loaded, HIGHUMM will link into it, adding the
  1355.                  UMB functions.  For example: 
  1356.  
  1357.                  DEVICE=C:\TLBMM\LASTBYTE.SYS {and any options}
  1358.                  DEVICE=C:\TLBMM\HIGHDRVR.SYS C:\DOS\HIMEM.SYS
  1359.                  DEVICE=C:\TLBMM\HIGHUMM.SYS
  1360.  
  1361.         Do  not  install  HIGHUMM using either HIGHDRVR or the DEVICEHIGH
  1362.         command; simply use a DEVICE command, as shown above.  
  1363.  
  1364.  
  1365.         5.1 The /REPLACE Option       
  1366.  
  1367.         Although  described  in  the  XMS  specification, most XMS device
  1368.         drivers  so  not implement the UMB functions.  If your XMS driver
  1369.         happens  to  also  be  a  UMB provider, HIGHUMM will abort with a
  1370.         corresponding  error  message.   You  may  then  use the /REPLACE
  1371.         option  on  the HIGHUMM.SYS command line to force it to take over
  1372.         responsibility for providing UMBs.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1382.  
  1383.  
  1384.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              21
  1385.  
  1386.  
  1387.         5.2 The /NOSPLIT Option       
  1388.  
  1389.         HIGHUMM  requires  that  LASTBYTE.SYS  be  installed  first.   It
  1390.         automatically  loads  itself  into  upper memory, putting much of
  1391.         itself   into   read-only   shadow  ram,  unused  HMA  space,  or
  1392.         bank-switch  memory  if  available.   The  /NOSPLIT option can be
  1393.         used to prevent it from doing this.  
  1394.  
  1395.  
  1396.         5.3 The /RESTRICT Option       
  1397.  
  1398.         When  used,  this  option  restricts  which 128k regions of upper
  1399.         memory  may  be  allocated  for use with HIGHUMM.  For a detailed
  1400.         discussion  of  why  these  regions may need to be restricted and
  1401.         how  to  control  the  restrictions,  see  the  discussion of the
  1402.         RESTRICT option in the chapter on LASTBYTE.SYS.  
  1403.  
  1404.  
  1405.         5.4 Limiting UMB Memory       
  1406.  
  1407.         If  you  want  to limit how much upper memory can be allocated by
  1408.         HIGHUMM  as UMB's, you can specify this in kbytes as an option on
  1409.         the HIGHUMM.SYS command line, as in: 
  1410.  
  1411.                 DEVICE=C:\TLBMM\HIGHUMM.SYS 60 
  1412.  
  1413.         This  provides  a guarantee that some amount of upper memory will
  1414.         never  be  allocated  by  HIGHUMM.SYS,  and  will  thus  still be
  1415.         available for other uses.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1442.  
  1443.  
  1444.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              22
  1445.  
  1446.  
  1447.           CHAPTER 6 - HIGHDUBL.SYS: A REPLACEMENT FOR DBLSPACE.SYS    
  1448.  
  1449.  
  1450.         If  you have installed the DOS 6 disk compression software called
  1451.         DBLSPACE,  then each time you boot the operating system loads the
  1452.         device  driver  DBLSPACE.BIN  from  a  hidden  file  in  the root
  1453.         directory  to  the  top  of  conventional  memory.   Later during
  1454.         CONFIG.SYS  processing,  a DEVICE=DBLSPACE.SYS command is used to
  1455.         relocate  DBLSPACE.BIN to the bottom of conventional memory, or a
  1456.         DEVICEHIGH=DBLSPACE.SYS  command  is  used with DOS=UMB and a UMB
  1457.         provider (like HIGHUMM.SYS) to move it to upper (UMB) memory.  
  1458.  
  1459.         HIGHDUBL.SYS   is   a  replacement  for  DBLSPACE.SYS.   It  does
  1460.         everything  that  DBLSPACE.SYS can do and more.  Specifically, it
  1461.         has  the  additional ability to relocate DBLSPACE.BIN into Hi-DOS
  1462.         memory  even  if  HIGHUMM.SYS  and DOS=UMB are not installed.  In
  1463.         other  words, if you are using HIGHDRVR.SYS instead of DEVICEHIGH
  1464.         commands  in  CONFIG.SYS,  then  you should also use HIGHDUBL.SYS
  1465.         instead of DBLSPACE.SYS to relocate DBLSPACE.BIN, as in: 
  1466.  
  1467.                 DEVICE=C:\TLBMM\HIGHDUBL.SYS 
  1468.  
  1469.  
  1470.         6.1 The /MOVE Option       
  1471.  
  1472.         The  /MOVE  option of HIGHDUBL is only provided for full cosmetic
  1473.         compatibility  with DBLSPACE.SYS.  It is not required in order to
  1474.         relocate  DBLSPACE.BIN  into  Hi-DOS memory.  If used, the proper
  1475.         syntax would be the same as used by DBLSPACE.SYS: 
  1476.  
  1477.                 DEVICE=C:\TLBMM\HIGHDUBL.SYS /MOVE 
  1478.  
  1479.  
  1480.         6.2 The /RESTRICT Option       
  1481.  
  1482.         When used as in: 
  1483.  
  1484.                 DEVICE=C:\TLBMM\HIGHDUBL.SYS /MOVE /RESTRICT 
  1485.  
  1486.         this  option  restricts which 128k regions of upper memory may be
  1487.         used  to  load  DBLSPACE.BIN  into Hi-DOS memory.  For a detailed
  1488.         discussion  of  why  these  regions may need to be restricted and
  1489.         how  to  control  the  restrictions,  see  the  discussion of the
  1490.         RESTRICT option in the chapter on LASTBYTE.SYS.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1502.  
  1503.  
  1504.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              23
  1505.  
  1506.  
  1507.                     CHAPTER 7 - SPECIAL CONSIDERATIONS       
  1508.  
  1509.  
  1510.         7.1 Specifying Command Line Options with Indirect Files   
  1511.  
  1512.         Some  of the device drivers and utility programs in The Last Byte
  1513.         Memory  Manager  package  may  require  lots  of  options  to  be
  1514.         specified.   To  avoid  lengthly command lines, these options can
  1515.         be  placed  in  a text file if the name of that file is specified
  1516.         on  the command line preceded by the '@' character.  For example,
  1517.         you'd  begin  to  run out of room if all of the following options
  1518.         were required on the LASTBYTE.SYS command line: 
  1519.  
  1520.         PHYSICAL=82C302 NAME=Joe_Blow KEY=12345678 APPEND=64 DOS=F000:32 ?
  1521.  
  1522.         As  an  alternative,  create  a  corresponding  text  file called
  1523.         LASTBYTE.CFG (for example), and put the options into it: 
  1524.  
  1525.                 PHYSICAL=82C302   NAME=Joe_Blow   KEY=12345678  APPEND=64
  1526.                 DOS=F000:32 ? 
  1527.  
  1528.         (Carriage returns in the indirect file are treated as blanks) 
  1529.  
  1530.         Then the CONFIG.SYS command line becomes simply: 
  1531.  
  1532.                 DEVICE=C:\TLBMM\LASTBYTE.SYS @LASTBYTE.CFG 
  1533.  
  1534.         In  effect,  options  taken  from  the indirect file are inserted
  1535.         into  the  command  line,  so  that  one  or  more  indirect file
  1536.         references  may  be  placed  among  other  options on the command
  1537.         line: 
  1538.  
  1539.                 DEVICE=C:\TLBMM\LASTBYTE.SYS ? @TLB.1 A=32 @C:\TLB\TLB.2 
  1540.  
  1541.         Indirect  files  may  be  used  on the command line of any device
  1542.         driver  (.SYS  files) or utility program (.EXE files) in The Last
  1543.         Byte Memory Manager package.  
  1544.  
  1545.  
  1546.         7.2 Using the DOS=F000:32 Option      
  1547.  
  1548.         The  64k  region  starting  at paragraph address F000 is the Bios
  1549.         ROM.   Many  computers  use  a  Bios  ROM  developed  by  AMI  or
  1550.         Phoenix.   The  more  recent  versions  of  these ROMs devote the
  1551.         first  32k  to  initialization  code that is only used during the
  1552.         boot  sequence, and use the second 32k for that portion that must
  1553.         remain  available  at  all  times.  (This seems to be true of the
  1554.         Award Bios as well, but has not been verified.) 
  1555.  
  1556.         By  the time your computer gets to the point in its boot sequence
  1557.         where  it  is  installing  the  device  drivers (e.g., when it is
  1558.  
  1559.  
  1560.  
  1561.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1562.  
  1563.  
  1564.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              24
  1565.  
  1566.  
  1567.         installing  LASTBYTE.SYS),  the  Bios  initialization  code is no
  1568.         longer  needed.   If  you  have  one of these AMI or Phoenix Bios
  1569.         chips,  you  can  capture  another 32k of upper memory by using a
  1570.         DOS=F000:32 option on the LASTBYTE.SYS command line.  
  1571.  
  1572.         Of  course,  whenever  you  press Ctrl-Alt-Del to do a warm boot,
  1573.         the  ROM  Bios  initialization  code  needs to be executed again!
  1574.         And  that could be a problem since you've effectively disabled it
  1575.         with   the   DOS=F000:32   option!    Fortunately,   LASTBYTE.SYS
  1576.         intercepts   all   keyboard  input  and  keeps  an  eye  out  for
  1577.         Ctrl-Alt-Del.   When it sees the warm boot request, it will force
  1578.         a  cold  boot  if  you've  used  the  DOS=F000:32  option.   This
  1579.         re-enables  the  entire  64k  Bios ROM so that the initialization
  1580.         code  is  reactivated  before  the processor tries to execute it.
  1581.         Otherwise a normal warm boot is used.  
  1582.  
  1583.                 ╔═════════════════════════════════════════════════╗
  1584.                 ║ WARNING: Some TSRs intercept keyboard interrupt ║ 
  1585.                 ║ 9, and jump directly into a fixed location in   ║ 
  1586.                 ║ the Bios ROM where the Warm Boot code begins.   ║ 
  1587.                 ║ Unfortunately, this will bypass LASTBYTE.SYS's  ║ 
  1588.                 ║ attempt to turn the ROM back on.                ║ 
  1589.                 ╚═════════════════════════════════════════════════╝
  1590.  
  1591.  
  1592.         7.3 Video Display RAM above 640k     
  1593.  
  1594.         In  general,  the  region A0000-BFFFF is the video display buffer
  1595.         area.   Various  display  adapters  (MDA, Hercules, CGA, EGA, and
  1596.         VGA)  typically  use only a small subset of this space.  The Last
  1597.         Byte  Memory  Manager  automatically  senses  what  kind of video
  1598.         display adapter is installed and reserves the space it uses.  
  1599.  
  1600.         The  MDA  (monochrome)  adapter  implements  a  4k text buffer at
  1601.         B0000-B0FFF,  and  the  CGA (color) adapter implements a 16k text
  1602.         and  graphics  buffer  at B8000-BBFFF.  The Hercules adapter uses
  1603.         the  entire 64k region at B0000-BFFFF in graphics modes, although
  1604.         only  the  first  4k of this space (B0000-B0FFF) is used for text
  1605.         modes.  
  1606.  
  1607.         The  EGA  and  VGA adapters have a 64k graphics display buffer at
  1608.         A0000-AFFFF,  and a 32k text display buffer at either B0000-B7FFF
  1609.         (when  used  with  a monochrome display), or at B8000-BFFFF (when
  1610.         used with a color display).  
  1611.  
  1612.         The  following  chart summarizes these regions as well as some of
  1613.         the  DOS  and  APPEND  optons  you  may  be  able  to  use on the
  1614.         LASTBYTE.SYS  command  line  with these adapters.  Unfortunately,
  1615.         the  ROM  bios  on  a  (very)  few  PC's may write into locations
  1616.         outside  the  area reserved for a particular type of display.  If
  1617.         you  decide  this  is  happening, you may need to add one or more
  1618.  
  1619.  
  1620.  
  1621.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1622.  
  1623.  
  1624.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              25
  1625.  
  1626.  
  1627.         EXCLUDE  options to the LASTBYTE.SYS command line to disable that
  1628.         region.  
  1629.  
  1630.              LASTBYTE.SYS Command Line Options for Display Adapters
  1631.  
  1632.              Adapter         Reserved        DOS         APPEND
  1633.              -------         --------        -------     -------
  1634.              CGA             B800:16                     96
  1635.              MDA             B000:4                      64
  1636.              Hercules        B000:64         B400:48     64
  1637.  
  1638.              EGA/VGA         A000:64         BC00:16     96
  1639.              w/Color         B800:32 
  1640.              Display
  1641.  
  1642.              EGA/VGA         A000:64         B400:16     64
  1643.              w/Mono          B000:32
  1644.              Display
  1645.  
  1646.              VGA Bios        C000:32         C600:8 (see next section)
  1647.  
  1648.              Notes: (1) Windows 3.0 may write in the region B000-BFFF.
  1649.                     (2) The ability to use the DOS and APPEND options 
  1650.                         depends on the availability of memory in the
  1651.                         indicated region.
  1652.  
  1653.  
  1654.         7.4 Video Adapter Bios ROMs      
  1655.  
  1656.         MDA  and CGA use the standard ROM Bios; they have no ROM of their
  1657.         own.   EGA  and  VGA adapters, however, incorporate their own ROM
  1658.         Bios  chip  right on the adapter card.  LASTBYTE.SYS successfully
  1659.         recognizes these ROMs, but has to treat VGA in a special manner: 
  1660.  
  1661.         The  VGA  adapter  made  by  IBM  has  a  24k  ROM  installed  at
  1662.         C0000-C5FFF,  which  means  that  the 8k at C6000-C7FFF should be
  1663.         usable.   Although  almost  all  VGA  clones have a ROM signature
  1664.         that  indicates  24k,  many of them use the C6000-C7FFF space for
  1665.         ROM  Bios  or  RAM  extensions  that  provide  their  "Super VGA"
  1666.         features.    In   particular,   the  Video7  and  Paradise  VGA's
  1667.         incorporate  their  own  RAM from C6000-C7FFF.  (This may also be
  1668.         true  of  other  VGA boards that uses a VLSI chip manufactured by
  1669.         Chips   and  Technologies,  Tseng  Labs,  Paradise,  or  Headland
  1670.         Technologies.)    For   this   reason,  when  LASTBYTE.SYS  finds
  1671.         anybody's  VGA  adapter, it automatically assumes that there is a
  1672.         32k ROM at C0000-C7FFF.  
  1673.  
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  
  1679.  
  1680.  
  1681.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1682.  
  1683.  
  1684.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              26
  1685.  
  1686.  
  1687.         7.5 LASTBYTE.SYS and Expanded Memory      
  1688.  
  1689.         Expanded  memory always has an associated device driver.  If that
  1690.         driver  is loaded before LASTBYTE.SYS in the CONFIG.SYS file (and
  1691.         if  the  hardware is enabled) LASTBYTE.SYS will recognize the 64k
  1692.         EMM  page frame of the expanded memory and do the right thing: It
  1693.         will  treat the page frame like any other adapter ram and disable
  1694.         the  motherboard RAM that falls in the same address space so that
  1695.         it  doesn't  interfere  with the page frame.  For example, if the
  1696.         EMM  driver is loaded first, LASTBYTE.SYS will report the 64k EMM
  1697.         page frame as "EMS Page Frame".  
  1698.  
  1699.         This  works  fine,  of  course,  but loading the EMM driver first
  1700.         precludes  the  possibility  of loading it into upper memory.  To
  1701.         get  the  EMM  driver  into  upper  memory  means that it must be
  1702.         loaded after LASTBYTE.SYS, but you must be careful! 
  1703.  
  1704.         If   LASTBYTE.SYS  is  loaded  first,  the  page  frame  will  be
  1705.         recognized only in two cases: 
  1706.  
  1707.              1.  The   page   frame  used  by  the  expanded  memory
  1708.                  controller  built into some memory controller chips
  1709.                  will  be  recognized  and  reported  as  "EMS  Page
  1710.                  Frame".  
  1711.  
  1712.              2.  The  page  frame of a REAL expanded memory board is
  1713.                  (if  enabled)  recognized  and reported as "Adapter
  1714.                  RAM".  
  1715.  
  1716.         In either case, LASTBYTE.SYS will not use that memory space.  
  1717.  
  1718.                 ╔═════════════════════════════════════════════════╗
  1719.                 ║ WARNING: Some EMS boards must be enabled by     ║ 
  1720.                 ║ their device driver before they respond as      ║ 
  1721.                 ║ read/write memory.  This prevents LASTBYTE.SYS  ║ 
  1722.                 ║ from recognizing them, and you may need a       ║ 
  1723.                 ║ BANKSWITCH option to keep LASTBYTE.SYS from     ║ 
  1724.                 ║ using the page frame memory space.              ║ 
  1725.                 ╚═════════════════════════════════════════════════╝
  1726.  
  1727.         If  you  don't  have  an  expanded  memory board, but have used a
  1728.         device  driver  (like EMM386) that EMULATES expanded memory using
  1729.         extended  memory,  then LASTBYTE.SYS will not know about the page
  1730.         frame  unless  the  emulator is loaded first.  If LASTBYTE.SYS is
  1731.         loaded  first,  then  you  must  use  a EXCLUDE (not BANKSWITCH!)
  1732.         command  line  option  of  LASTBYTE.SYS  to  reserve a 64k region
  1733.         where  the  emulated  page  frame can be placed.  For EMM386, the
  1734.         page  frame  must  be positioned at C000, C400, C800, CC00, D000,
  1735.         D400, D800, DC00, or E000.  
  1736.  
  1737.  
  1738.  
  1739.  
  1740.  
  1741.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1742.  
  1743.  
  1744.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              27
  1745.  
  1746.  
  1747.         7.6 Fine-Tuning your Adapter Hardware Configuration     
  1748.  
  1749.         Many  adapter  cards  occupy  some  portion  of the upper address
  1750.         space.   Some  of  these  cards,  such  as SCSI Disk Controllers,
  1751.         often  have  DIP  switches or jumpers that can be used to set the
  1752.         address space they occupy to one of a few alternatives.  
  1753.  
  1754.         If  the memory map displayed by HIGHMEM is fragmented because one
  1755.         of  these adapters sits between two "....DOS Free" areas, you may
  1756.         want  to  try  to  reposition  the address space occupied by that
  1757.         adapter  by  modifying  the  DIP switch or jumper settings on the
  1758.         card.  
  1759.  
  1760.         Having  one  large  free  memory block is better than two smaller
  1761.         ones  because TSR's and device drivers almost always require more
  1762.         memory  during  initialization  than  once  installed.   In other
  1763.         words,  neither of the two smaller blocks may be large enough for
  1764.         the installation, but might if they were combined.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.  
  1790.  
  1791.  
  1792.  
  1793.  
  1794.  
  1795.  
  1796.  
  1797.  
  1798.  
  1799.  
  1800.  
  1801.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1802.  
  1803.  
  1804.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              28
  1805.  
  1806.  
  1807.                     CHAPTER 8 - USE WITH OTHER SOFTWARE     
  1808.  
  1809.  
  1810.         8.1 Microsoft's FASTOPEN and MODE programs     
  1811.  
  1812.         The  FASTOPEN  and  MODE programs that come with MS-DOS are TSR's
  1813.         and  as  such may be loaded into upper memory with HIGHTSR.  Once
  1814.         installed,  each  requires  very  little memory, something on the
  1815.         order  of  10k  or  less.  However, neither will install unless a
  1816.         lot  of  memory is available - approximately 50-90k.  (The actual
  1817.         requirement  depends  partly  on  command  line  options; you can
  1818.         determine the requirement using the /SIZE option of HIGHTSR.) 
  1819.  
  1820.                 ╔═════════════════════════════════════════════════╗
  1821.                 ║ WARNING: Do NOT use the /LOW option of HIGHTSR  ║ 
  1822.                 ║ with FASTOPEN or MODE - it won't work and could ║ 
  1823.                 ║ damage data on your disk!                       ║ 
  1824.                 ╚═════════════════════════════════════════════════╝
  1825.  
  1826.         The  worst  part  is  that  if  FASTOPEN  fails to install itself
  1827.         successfully,  it  doesn't  issue  any  error message - it simply
  1828.         doesn't   display   the   normal   "FASTOPEN  installed"  sign-on
  1829.         message.   Moral:  Let  FASTOPEN and MODE be the first TSR's that
  1830.         are  installed into High Memory in your AUTOEXEC.BAT file so that
  1831.         they get access to the maximum amount of memory.  
  1832.  
  1833.         The  second  hassle  with  these two TSR's is that they cannot be
  1834.         removed  by  using  the advanced utilities HIGHMARK and HIGHUNDO.
  1835.         Evidently  they modify memory other than that tracked by HIGHMARK
  1836.         (the interrupt vector table and that memory allocated to them).  
  1837.  
  1838.  
  1839.         8.2 Microsoft's SHARE program       
  1840.  
  1841.         MS-DOS  4  installs the SHARE program automatically if you have a
  1842.         hard  disk which is greater than 32 MB in a single partition.  It
  1843.         does  this  without  asking  because  it is otherwise possible to
  1844.         corrupt  the  data on the disk when running programs that use the
  1845.         old File Control Block (FCB) approach to access files.  
  1846.  
  1847.         Unfortunately,  some  internal parts of MS-DOS 4.0 also still use
  1848.         FCB's!   So  don't  try  to  prevent  SHARE  from being loaded by
  1849.         removing  it  from  your system!  If MS-DOS can't find it, you'll
  1850.         get  a  warning message during the boot saying that "SHARE should
  1851.         be   loaded   for   large  media".   You  could  load  it  during
  1852.         AUTOEXEC.BAT   processing,  but  you'll  still  get  the  warning
  1853.         because the check occurs during CONFIG.SYS processing.  
  1854.  
  1855.  
  1856.  
  1857.  
  1858.  
  1859.  
  1860.  
  1861.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1862.  
  1863.  
  1864.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              29
  1865.  
  1866.  
  1867.                 ┌─────────────────────────────────────────────────┐
  1868.                 │ NOTE: Version 5 of MS-DOS has corrected this    │ 
  1869.                 │ problem and no longer loads SHARE automatically │ 
  1870.                 │ regardless of the size of your hard disk.       │ 
  1871.                 └─────────────────────────────────────────────────┘ 
  1872.  
  1873.         So  how  can  you load this TSR into upper memory without getting
  1874.         the   warning?    MS-DOS   recently   introduced  the  "INSTALL="
  1875.         directive  that  allows  TSR's  to be installed during CONFIG.SYS
  1876.         processing.   Programs  that Microsoft suggests be loaded in this
  1877.         manner include FASTOPEN, KEYB, NLSFUNC, and SHARE.  For example: 
  1878.  
  1879.                 INSTALL=C:\DOS\SHARE.EXE 
  1880.  
  1881.         The  above  command,  however,  causes SHARE to be loaded down in
  1882.         conventional memory.  to get it into upper memory, use: 
  1883.  
  1884.                 INSTALL=C:\TLBMM\HIGHTSR.EXE C:\DOS\SHARE.EXE 
  1885.  
  1886.                 ╔═════════════════════════════════════════════════╗
  1887.                 ║ WARNING: Do NOT use the /LOW option of HIGHTSR  ║ 
  1888.                 ║ with SHARE - it won't work and could damage     ║ 
  1889.                 ║ data on your disk!                              ║ 
  1890.                 ╚═════════════════════════════════════════════════╝
  1891.  
  1892.  
  1893.         8.3 Microsoft's MS-DOS        
  1894.  
  1895.         With   the  introduction  of  MS-DOS  5.0,  Microsoft  has  added
  1896.         extensive  support  for  loading software into high memory.  This
  1897.         includes  not  only  device drivers and TSRs, but also the MS-DOS
  1898.         disk  buffers,  the master environment, and most of the operating
  1899.         system itself.  
  1900.  
  1901.         Most  of  this  capability  requires  the  use of an Upper Memory
  1902.         Block   (UMB)   provider   such   as   Key   Software   Products'
  1903.         HIGHUMM.SYS.   Although  the  MS-DOS  5.0  version  of EMM386 now
  1904.         provides  such  support, there are several disadvantages to using
  1905.         it  instead  of  The  Last  Byte  Memory Manager to load software
  1906.         high: 
  1907.  
  1908.              1.  EMM386   requires   a   386  or  better  processor.
  1909.                  (HIGHUMM does not.) 
  1910.  
  1911.              2.  EMM386  requires  that  HIMEM.SYS  be loaded first.
  1912.                  (HIGHUMM  does  not.  However, HIMEM is also needed
  1913.                  to  load  the operating system itself into extended
  1914.                  memory;  The Last Byte Memory Manager allows you to
  1915.                  load HIMEM into upper memory using HIGHDRVR.) 
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1922.  
  1923.  
  1924.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              30
  1925.  
  1926.  
  1927.              3.  Using  HIMEM and EMM386 as the basis of UMB support
  1928.                  requires  that  both  be  loaded  into conventional
  1929.                  memory.  
  1930.  
  1931.              4.  EMM386  puts  the  processor  into  protected mode,
  1932.                  adding  an  instruction  execution  time penalty of
  1933.                  about 5%.  
  1934.  
  1935.         There  are  two  basic  approaches  that  you  can  take  to load
  1936.         software  into  upper  memory  using MS-DOS 5.0 and The Last Byte
  1937.         Memory  Manager.   The  first  of these is to install HIGHUMM and
  1938.         use  the  'DEVICEHIGH'  and  'LOADHIGH'  commands  introduced  in
  1939.         MS-DOS 5.0; the other is to use HIGHDRVR and HIGHTSR.  
  1940.  
  1941.         We  recommend  the  latter  approach because HIGHDRVR and HIGHTSR
  1942.         provide  a  richer  set  of options for controlling the load high
  1943.         process.  
  1944.  
  1945.  
  1946.         8.3.1 Using DEVICEHIGH and LOADHIGH      
  1947.  
  1948.         To  use  this  approach,  your CONFIG.SYS file should contain the
  1949.         following lines: 
  1950.  
  1951.                 DOS=HIGH,UMB 
  1952.                 DEVICE=C:\TLBMM\LASTBYTE.SYS {and any options} 
  1953.                 DEVICE=C:\TLBMM\HIGHDRVR.SYS C:\DOS\HIMEM.SYS 
  1954.                 DEVICE=C:\TLBMM\HIGHUMM.SYS {and any options} 
  1955.  
  1956.         Then  you can use the MS-DOS 5.0 DEVICEHIGH command in additional
  1957.         lines  of  your CONFIG.SYS file to load your other device drivers
  1958.         into upper memory, as in: 
  1959.  
  1960.                 DEVICEHIGH={device driver to be loaded high} 
  1961.                 DEVICEHIGH={device driver to be loaded high} 
  1962.                         . . .  
  1963.                 DEVICEHIGH={device driver to be loaded high} 
  1964.  
  1965.         With  this  CONFIG.SYS file, your AUTOEXEC.BAT file may load TSRs
  1966.         high using the MS-DOS 5.0 LOADHIGH command as in: 
  1967.  
  1968.                 LOADHIGH C:\DOS\PRINT 
  1969.  
  1970.  
  1971.         8.3.2 Using HIGHDRVR and HIGHTSR      
  1972.  
  1973.         The  second approach is to use the HIGHDRVR and HIGHTSR utilities
  1974.         of  The  Last  Byte  Memory Manager in the normal manner.  To use
  1975.         this  approach, your CONFIG.SYS file should contain the following
  1976.         lines: 
  1977.  
  1978.  
  1979.  
  1980.  
  1981.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1982.  
  1983.  
  1984.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              31
  1985.  
  1986.  
  1987.                 DOS=HIGH 
  1988.                 DEVICE=C:\TLBMM\LASTBYTE.SYS {and any options} 
  1989.                 DEVICE=C:\TLBMM\HIGHDRVR.SYS C:\DOS\HIMEM.SYS 
  1990.  
  1991.         Then  you can use HIGHDRVR in additional lines of your CONFIG.SYS
  1992.         file to load your other device drivers into upper memory, as in: 
  1993.  
  1994.          DEVICE=C:\TLBMM\HIGHDRVR.SYS {device driver to be loaded high}
  1995.          DEVICE=C:\TLBMM\HIGHDRVR.SYS {device driver to be loaded high}
  1996.                                       . . .
  1997.          DEVICE=C:\TLBMM\HIGHDRVR.SYS {device driver to be loaded high}
  1998.  
  1999.         With  this  CONFIG.SYS  file,  your AUTOEXEC.BAT file should load
  2000.         TSRs high using HIGHTSR as in: 
  2001.  
  2002.                           C:\TLBMM\HIGHTSR C:\DOS\PRINT
  2003.  
  2004.  
  2005.         8.4 Microsoft Windows        
  2006.  
  2007.         In  general,  The  Last  Byte Memory Manager has a high degree of
  2008.         compatibility  with  Windows  3.0  and  3.1.   If  you are having
  2009.         trouble  running  Windows,  first  be  sure  that  your system is
  2010.         properly  configured so that it runs without The Last Byte Memory
  2011.         Manager  installed.   If  you  have isolated the problem to their
  2012.         combination,  then perhaps the following information will help to
  2013.         correct the problem: 
  2014.  
  2015.  
  2016.         8.4.1 Modifying the Windows SYSTEM.INI File     
  2017.  
  2018.         With  Windows  running  in  386  enhanced  mode, LASTBYTE.SYS and
  2019.         Windows  will  both  try  to  use  the  upper  memory  area, thus
  2020.         creating  a  conflict.   To  avoid  the  conflict,  you  must ask
  2021.         Windows  to  not  use  this  region.  This can be done with a few
  2022.         configuration  options  in  the  [386Enh]  section of the Windows
  2023.         SYSTEM.INI file: 
  2024.  
  2025.                   EMMExclude=A000-FFFF
  2026.                   HighFloppyReads=no
  2027.                   DualDisplay=yes
  2028.                   SystemROMBreakPoint=no
  2029.  
  2030.         If  you  have  used the EXCLUDE option of LASTBYTE.SYS to disable
  2031.         any  region  of  the upper memory, then Windows may be told it is
  2032.         ok  to  use  that  area.   For example, if LASTBYTE.SYS is loaded
  2033.         using the line: 
  2034.  
  2035.                 DEVICE=C:\TLBMM\LASTBYTE.SYS EXCLUDE=D000:64 
  2036.  
  2037.         then  you may use the following configuration option (in addition
  2038.  
  2039.  
  2040.  
  2041.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2042.  
  2043.  
  2044.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              32
  2045.  
  2046.  
  2047.         to the EMMExclude option above) in your SYSTEM.INI file: 
  2048.  
  2049.                 EMMInclude=D000-DFFF 
  2050.  
  2051.         The  EMMInclude  option  will take precedence over the EMMExclude
  2052.         option when the two overlap, as above.  
  2053.  
  2054.  
  2055.         8.4.2 Positioning an EMS Page Frame     
  2056.  
  2057.         If  you  are using the Real or Standard modes of Windows, you may
  2058.         have  installed  an EMS device driver for those applications that
  2059.         need  expanded  memory.  In an attempt to reduce fragmentation of
  2060.         upper  memory, it is useful to position the EMS Page Frame either
  2061.         at  the  bottom  or  top  of  an  otherwise empty region of upper
  2062.         memory.   However,  if  you  have  used the DOS=F000:32 option to
  2063.         gain  another  32k  of  DOS  memory, don't position your EMS Page
  2064.         Frame  at  E800  -  Windows  will not run with it any higher than
  2065.         E000.  
  2066.  
  2067.         The  Enhanced  386  mode  of  Windows  will automatically emulate
  2068.         expanded   memory   for   those  applications  that  require  it.
  2069.         Unfortunately,   Windows   ignores   the  EMMExclude  option  and
  2070.         positions  the  EMS  page frame in upper memory.  If the same 64k
  2071.         area  is used by The Last Byte Memory Manager for something else,
  2072.         your   system   may   hang.   To  correct  the  problem,  add  an
  2073.         "EMSPageFrame=nnnn"  option  in  your  SYSTEM.INI  file  to  tell
  2074.         Windows   where   to   put  the  page  frame,  combined  with  an
  2075.         "EXCLUDE=nnnn:64"  option  on  the  LASTBYTE.SYS  command line to
  2076.         keep it from using this area.  
  2077.  
  2078.  
  2079.         8.4.3 "Unsupported Data Configuration"       
  2080.  
  2081.         The  386 Enhanced mode of Windows 3.0 (not 3.1) has a restriction
  2082.         that  it  cannot  run  when  certain  types of software have been
  2083.         loaded  high.   When  this  happens,  Windows  will terminate and
  2084.         display  the  error  message,  "Unsupported  Data Configuration".
  2085.         This  only  happens  in  386 Enhanced mode, and is not related in
  2086.         particular to use of The Last Byte Memory Manager.  
  2087.  
  2088.         Device  drivers  that are known to load high without this problem
  2089.         include  HIMEM.SYS,  MOUSE.SYS, SETVER.SYS, ANSI.SYS, and all the
  2090.         Key  Software Products device drivers.  A device driver and a TSR
  2091.         known  to  cause this problem are EGA.SYS and DOSKEY.COM.  If you
  2092.         are  experiencing  this error message, you can either run Windows
  2093.         in   another   mode,   or   try  modifying  your  CONFIG.SYS  and
  2094.         AUTOEXEC.BAT files to locate and remove the offending software.  
  2095.  
  2096.         Microsoft   has  removed  this  restriction  in  version  3.1  of
  2097.         Windows.  
  2098.  
  2099.  
  2100.  
  2101.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2102.  
  2103.  
  2104.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              33
  2105.  
  2106.  
  2107.  
  2108.  
  2109.         8.4.4 HIGHMEM and Windows 386 Enhanced Mode    
  2110.  
  2111.         MS-DOS  applications  run from inside Windows 3.0 are given their
  2112.         own   "virtual"   address  space  of  640k.   Windows  tells  the
  2113.         processor   to  map  memory  references  in  this  space  to  the
  2114.         particular  640k  of  physical memory which has been allocated to
  2115.         the  application.   References  outside this range are considered
  2116.         invalid  and  thus  return  garbage.   Since HIGHMEM is a program
  2117.         that  inspects  upper  memory  between 640k and 1 meg, there's no
  2118.         way  it  can  execute  properly  in  this  context.  HIGHMEM will
  2119.         behave normally outside of Windows.  
  2120.  
  2121.  
  2122.         8.5 HyperWare's HyperDisk        
  2123.  
  2124.         HyperDisk  is  a  shareware disk caching utility.  If you use its
  2125.         "XS"  option  to load itself into the 48k block starting at E400,
  2126.         be  sure  to  exclude  this area by using the following option on
  2127.         the LASTBYTE.SYS command line: 
  2128.  
  2129.                 DEVICE=C:\TLBMM\LASTBYTE.SYS EXC=E400:48 
  2130.  
  2131.         A  better  approach  is  to  use  either  HIGHDRVR or HIGHTSR (as
  2132.         appropriate)  to  load  HyperDisk  high (without HyperDisk's "XS"
  2133.         option).   This  method  guarantees  that  the  minimum amount of
  2134.         upper memory will be used.  
  2135.  
  2136.         HyperDisk  can  be  downloaded  from  HyperWare's  BBS  at  (415)
  2137.         882-1735 or obtained directly from: 
  2138.  
  2139.                 FOLEY HI-TECH SYSTEMS           CompuServe: 70262,1763 
  2140.                 172 Amber Drive                 Phone: (415) 826-6084 
  2141.                 San Francisco, CA 94131         FAX: (415) 882-1733 
  2142.  
  2143.  
  2144.         8.6 J.P. Software's 4DOS       
  2145.  
  2146.         4DOS  is  a  shareware  replacement for COMMAND.COM.  HIGHUMM.SYS
  2147.         may  be  used  to  move the 4DOS command processor and its master
  2148.         environment  into  "Upper  Memory  Blocks"  (UMB's)  in the upper
  2149.         memory  area,  thus  reducing  the  amount of conventional memory
  2150.         below 640k used by 4DOS from 3.4k bytes to 256 bytes.  
  2151.  
  2152.         First  you  must install HIGHUMM.SYS as described earlier in this
  2153.         manual.   Then  add  a  "SHELL="  line  to  CONFIG.SYS  for 4DOS,
  2154.         including  the  options  /U (to place the command processor in an
  2155.         UMB)  and  /E:512U  (to  place the master environment in an UMB).
  2156.         The  value  512  is of course only an example - other environment
  2157.         sizes  may  be  specified.   You  may  also want to specify these
  2158.  
  2159.  
  2160.  
  2161.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2162.  
  2163.  
  2164.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              34
  2165.  
  2166.  
  2167.         options   for   secondary   shells  in  the  4DSHELL  environment
  2168.         variable.  Consult the 4DOS documentation for further details.  
  2169.  
  2170.         4DOS  may  be downloaded from Channel 1 BBS at (617) 354-8873, or
  2171.         obtained directly from: 
  2172.  
  2173.                 J.P. Software             CompuServe: 75300,210 
  2174.                 P.O. Box 1470             BIX: "trawson" 
  2175.                 E. Arlington, MA 02174    Internet, Bitnet, etc: 
  2176.                 Voice: (617) 646-3975       75300.210@compuserve.com 
  2177.                 Fax: (617) 646-0904 
  2178.  
  2179.  
  2180.         8.7 David Hamilton's BUFFIT       
  2181.  
  2182.         There's  a very nice shareware scroll-back TSR called BUFFIT that
  2183.         saves  lines  of  text that have been scrolled off the top of the
  2184.         screen  and allows you to pull them back down for review.  One of
  2185.         the  advantages  of  version  3.0  and later of BUFFIT is that it
  2186.         will  load  itself  entirely  into a UMB provided by HIGHUMM.SYS,
  2187.         thus using no conventional memory at all.  
  2188.  
  2189.         To  install  BUFFIT into upper memory, first you must install the
  2190.         HIGHUMM.SYS  device  driver  by  inserting the following lines in
  2191.         your CONFIG.SYS file: 
  2192.  
  2193.                 DEVICE=C:\TLBMM\LASTBYTE.SYS {and any LASTBYTE options} 
  2194.                 DEVICE=C:\TLBMM\HIGHUMM.SYS 
  2195.  
  2196.         Then  all  you  have to do is reboot your computer and run BUFFIT
  2197.         from  the  command  line,  or  else  add  it to your AUTOEXEC.BAT
  2198.         file.  
  2199.  
  2200.         BUFFIT  is  available  from  a number of BBS's, usually under the
  2201.         filename BUFFIT30.ZIP.  
  2202.  
  2203.  
  2204.         8.8 Charles Lazo's WAS       
  2205.  
  2206.         On  a  computer  with  no  expanded memory, you might want to use
  2207.         HIGHEMS3  to  provide  some  Expanded  Memory  for Charles Lazo's
  2208.         scroll-back  TSR, WAS.COM.  This utility saves lines of text that
  2209.         have  been  scrolled  off the top of the screen and allows you to
  2210.         pull  them  back down for review.  WAS is available from a number
  2211.         of BBS's, usually under the filename WAS062.ZIP.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2222.  
  2223.  
  2224.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              35
  2225.  
  2226.  
  2227.         8.9 Philip Gardner's DOSMAX       
  2228.  
  2229.         DOSMAX  is  a  set  of  utilities  that  compliment The Last Byte
  2230.         Memory  Manager  by moving all of the DOS "subsegments" (BUFFERS,
  2231.         FILES,  FCBS,  LASTDRIVE, STACKS, etc.), COMMAND.COM, and the DOS
  2232.         kernel  into  Upper  Memory  Blocks  provided by HIGHUMM.  Set up
  2233.         your CONFIG.SYS file as follows: 
  2234.  
  2235.              DOS=HIGH
  2236.              DEVICE=C:\DOSMAX\STOPMAX.SYS
  2237.              DEVICE=C:\TLBMM\LASTBYTE.SYS
  2238.              DEVICE=C:\TLBMM\HIGHDRVR.SYS C:\DOS\HIMEM.SYS
  2239.              DEVICE=C:\TLBMM\HIGHUMM.SYS /REPLACE
  2240.              DEVICE=C:\TLBMM\HIGHDRVR.SYS C:\DOSMAX\DOSMAX.EXE /C:+ /P:-
  2241.              SHELL=C:\DOSMAX\SHELLMAX.COM C:\DOS\COMMAND.COM C:\DOS\ /E:512 /P
  2242.  
  2243.         If  you  wish,  you  can  eliminate  the  use  of  STOPMAX.SYS by
  2244.         appending the /I+ or /B+ option to the DOSMAX.EXE command line.  
  2245.  
  2246.         Using     the     full     pathname    of    DOSMAX.EXE    (i.e.,
  2247.         C:\DOSMAX\DOSMAX.EXE)  is very important.  The resident stub must
  2248.         be  able to exec DOSMAX.EXE at the proper time, and this requires
  2249.         the full path to DOSMAX.EXE.  
  2250.  
  2251.         The  latest  version  of  DOSMAX  may  be downloaded from the Key
  2252.         Software Products bulletin board.  
  2253.  
  2254.  
  2255.         8.9.1 Trashed Floppy Diskettes       
  2256.  
  2257.         Under  certain circumstances, the combination of TLBMM and DOSMAX
  2258.         can  cause  data  on  floppy  diskettes  to  be  trashed.  If you
  2259.         experience  this problem, it is probably because DOSMAX has moved
  2260.         the  DOS  "Work  Buffer"  into  a 128k region of the Upper Memory
  2261.         Area  (640k-1meg)  in  which a 16-bit adapter is installed.  (See
  2262.         the  discussion  about  DMA in the section on the RESTRICT option
  2263.         of LASTBYTE.SYS that appears earlier in this document.) 
  2264.  
  2265.         The  solution  is  to  simply  add  the  "/WKBUFFER=0"  option to
  2266.         DOSMAX: 
  2267.  
  2268.                 DEVICE=DOSMAX.EXE /P:- /WKBUFFER=0 
  2269.  
  2270.         This prevents DOSMAX from moving the work buffer into the UMA.  
  2271.  
  2272.  
  2273.  
  2274.  
  2275.  
  2276.  
  2277.  
  2278.  
  2279.  
  2280.  
  2281.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2282.  
  2283.  
  2284.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              36
  2285.  
  2286.  
  2287.                         APPENDIX 1 - HOW TO REACH US     
  2288.  
  2289.  
  2290.         The  Key  Software Products telephone (415-364-9847) is shared by
  2291.         our  BBS,  FAX,  and  voice  mail  answering system.  Approximate
  2292.         hours of operation are: 
  2293.  
  2294.                   Voice mail and FAX: 8am - 5pm PST (weekdays)
  2295.                  BBS system: 5pm - 8am PST (24 hrs on weekends)
  2296.            BBS Parameters: 1200/2400/9600/14400 baud (v.32bis/v.42bis)
  2297.                              8 data bits, No Parity
  2298.  
  2299.         If  your call is answered by the voice mail system, it can take a
  2300.         message   that will be automatically forwarded to someone who can
  2301.         return  your  call as soon as possible.  In addition, it offers a
  2302.         touch-tone driven menu of useful information about our product.  
  2303.  
  2304.         To send us a FAX, follow the following steps: 
  2305.  
  2306.              Step 1:  You'll  be  greeted  by  our Voice Mail system
  2307.                       which  will  prompt you to press 1 if you have
  2308.                       a touch-tone phone.  
  2309.  
  2310.              Step 2:  Press 1.  You'll then hear a menu that prompts
  2311.                       you to press 5 to send a FAX.  
  2312.  
  2313.              Step 3:  Press  5.  In a few seconds, you'll hear a FAX
  2314.                       tone; press start on your FAX machine.  
  2315.  
  2316.         That's  all  there  is to it.  Be sure to include your FAX number
  2317.         for  the  reply  which  will  be  sent  back to you in one or two
  2318.         days.  
  2319.  
  2320.         If  you have access to electronic mail, you can send us a message
  2321.         via any of the following: 
  2322.  
  2323.         On COMPUSERVE, send mail to:
  2324.  
  2325.                 >Internet:tech.support@ksp.com
  2326.  
  2327.         On PRODIGY, send mail to: VGDC59A
  2328.  
  2329.         On INTERNET, UUCP, or BITNET, send mail to:
  2330.  
  2331.                 tech.support@ksp.com
  2332.  
  2333.         On FIDONET, address mail to "UUCP" at nearest fidonet site which
  2334.         provides a gateway to Internet, such as 1:105/42.
  2335.  
  2336.                 1st line of message: To: tech.support@ksp.com
  2337.  
  2338.  
  2339.  
  2340.  
  2341.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2342.  
  2343.  
  2344.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              37
  2345.  
  2346.  
  2347.         On MCI,
  2348.  
  2349.                  At the "To:" prompt enter: TECH SUPPORT (EMS)
  2350.                 At the "EMS:" prompt enter: Internet
  2351.                 At the "Mbx:" prompt enter: tech.support@ksp.com
  2352.  
  2353.         On APPLELINK, send mail to:
  2354.  
  2355.                 tech.support@ksp.com@dasnet#
  2356.  
  2357.         On TELENET's Telemail Service:
  2358.  
  2359.                 Send to: [INTERMAIL/USCISI]TELEMAIL/USA
  2360.                 1st line of message: Forward: ARPA
  2361.                 2nd line of message: To: tech.support@ksp.com
  2362.  
  2363.  
  2364.  
  2365.  
  2366.  
  2367.  
  2368.  
  2369.  
  2370.  
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.  
  2381.  
  2382.  
  2383.  
  2384.  
  2385.  
  2386.  
  2387.  
  2388.  
  2389.  
  2390.  
  2391.  
  2392.  
  2393.  
  2394.  
  2395.  
  2396.  
  2397.  
  2398.  
  2399.  
  2400.  
  2401.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2402.  
  2403.  
  2404.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              38
  2405.  
  2406.  
  2407.                 APPENDIX 2 - GETTING UPDATES VIA THE INTERNET    
  2408.  
  2409.  
  2410.  
  2411.  
  2412.  
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450.  
  2451.  
  2452.  
  2453.  
  2454.  
  2455.  
  2456.  
  2457.  
  2458.  
  2459.  
  2460.  
  2461.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2462.  
  2463.  
  2464.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              39
  2465.  
  2466.  
  2467.                       APPENDIX 3 - ACKNOWLEDGEMENTS        
  2468.  
  2469.  
  2470.         The  Last  Byte  Memory  Manager  wouldn't  exist without all the
  2471.         companies  that  manufacture  the  shadow  ram  memory controller
  2472.         chips,  and  who  have  provided techinical information on how to
  2473.         program  their  configuration registers.  If you know of a memory
  2474.         controller  chip  we  haven't included, please let us know and we
  2475.         will try to add it.  
  2476.  
  2477.         The  Last  Byte  Memory  Manager consists of almost a megabyte of
  2478.         source  code,  written  mostly in C with a sprinkling of assembly
  2479.         language,  and  compiled using version 3.1 of the DeSmet/C-Ware C
  2480.         compiler.   We  are grateful for the simplicity, flexibility, and
  2481.         speed  of this compiler, as well as the generous support provided
  2482.         by Joel and Susan Farley of C-Ware Corporation.  
  2483.  
  2484.         The  Last Byte Memory Manager could not have been created without
  2485.         the  gracious  support  of  many  people.   We  wish to thank the
  2486.         following  individuals  who  helped  to  test  beta  versions  or
  2487.         offered  useful  suggestions  for  new  features: Ron Cohen, J.B.
  2488.         Compton,  David  Durgee,  Philip  Gardner,  Mike  Hagerty,  Scott
  2489.         Jordahl,  Alan  Lambert,  Rob  Nee,  Kevin  Parris,  Dan Proctor,
  2490.         Graham  Robertson,  Ken  Sanquist,  Tony  Sheehan, Peter Summers,
  2491.         Steve  Hodsdon, Anthony Cox, My Phung, Martin Beckmann, and Prof.
  2492.         Timo Salmi (of the University of Vaasa, Finland).  
  2493.  
  2494.         Thank's  also  go to Tom Rawson of J. P. Software for providing a
  2495.         copy  of  4DOS, to Sue Nageotte of Digital Research for providing
  2496.         a  copy  of  DR  DOS,  to  Philip Gardner for providing a copy of
  2497.         DOSMAX,  and  to  Pat  Gelsinger of Intel Corporation for lending
  2498.         his  intimate  knowledge  of  the  80x86  instruction  sets.  And
  2499.         finally,  a  special  thanks  to  Serge  Caron,  Roger Cross, and
  2500.         Philip   Gardner   for   their   suggestions,  technical  advice,
  2501.         patience, and friendship.  
  2502.  
  2503.  
  2504.  
  2505.  
  2506.  
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  
  2513.  
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519.  
  2520.  
  2521.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2522.  
  2523.  
  2524.         Apr 09, 1994    THE LAST BYTE MEMORY MANAGER (tm)              40
  2525.  
  2526.  
  2527.                       APPENDIX 4 - LIMITED WARRANTY       
  2528.  
  2529.  
  2530.         This  software  is provided 'as is' without warranty of any kind,
  2531.         either  expressed  or  implied, including, but not limited to the
  2532.         implied   warranties   of   merchantability  and  fitness  for  a
  2533.         particular  purpose.   The  entire  risk  as  to  the quality and
  2534.         performance of the program is with you.  
  2535.  
  2536.         Some  states do not allow the exclusion of implied warranties, so
  2537.         the  above  exclusions may not apply to you.  This warranty gives
  2538.         you  specific  legal  rights  and  you may also have other rights
  2539.         which vary from state to state.  
  2540.  
  2541.         Key  Software  Products  has  taken  due  care  in  preparing the
  2542.         documentation  and  software  included  in  The  Last Byte Memory
  2543.         Manager   to   ascertain  their  correctness  and  effectiveness.
  2544.         However,  Key  Software  Products does not warrant that operation
  2545.         of  this  software  will  be  uninterrupted or error free.  In no
  2546.         event  shall  Key  Software  Products be liable for incidental or
  2547.         consequential  damages  in  connection with or arising out of the
  2548.         furnishing, performance, or use of this software.  
  2549.  
  2550.  
  2551.                                      LICENSE
  2552.  
  2553.         You  MAY  use  this software on any computer or computers in your
  2554.         possession, but on no more than one computer at any given time.  
  2555.  
  2556.         You  MAY  copy this software into any machine readable or printed
  2557.         form  for  backup or modification purposes in support of your use
  2558.         of the software.  
  2559.  
  2560.         You  MAY  distribute  the original unmodified, unlicensed version
  2561.         of  this  software,  but you may not charge a fee exceeding $5.00
  2562.         to  cover  the  cost of duplicating, shipping, and handling.  You
  2563.         may NOT distribute a licensed version of this software.  
  2564.  
  2565.         You  may  NOT  use,  copy, modify, sublicense, assign or transfer
  2566.         this  software  and  its license, or any copy or modification, in
  2567.         whole  or  in  part,  except  as  expressly  provided for in this
  2568.         license.  
  2569.  
  2570.  
  2571.  
  2572.  
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.  
  2579.  
  2580.  
  2581.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2582.  
  2583.